【转】原地址  http://blog.163.com/xygzx@126/blog/static/237809502011102010100331/

效果显示图:

1.布局文件

main.xml(ExpandableListActivity布局文件)

注意事项:

ExpandableListActivity的布局文件中必须包含一个ExpandableListView,并且id必须为="@id/android:list"。还可以包含一个id为empty的TextView,在ExpandableListActivity中没有数据的时候显示该控件的text值。

  <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">
     <ExpandableListView android:id="@id/android:list"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:drawSelectorOnTop="false">
         </ExpandableListView>
     <TextView
         android:id="@id/android:empty"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:text="没有数据">
         </TextView>
 </LinearLayout>

group.xml(一级条目布局文件,样式外观可根据需要自由发挥)

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   <TextView android:id="@+id/groupTo"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:paddingLeft="60dip"
      android:paddingTop="10dip"
      android:paddingBottom="10dip"
      android:text="No Date"
      android:textSize="20sp">
   </TextView>
 </LinearLayout>

child.xml(二级条目布局文件,样式外观可根据需要自由发挥)

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   <TextView android:id="@+id/childTo"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:paddingLeft="50dip"
       android:paddingTop="5dip"
       android:paddingBottom="5dip"
       android:textSize="20sp"
       android:text="No Date">
   </TextView>
 </LinearLayout>

2.JAVA代码

 package com.test;

 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import android.app.ExpandableListActivity;
 import android.os.Bundle;
 import android.widget.SimpleExpandableListAdapter;
 public class Sample_ExpandableListActivityActivity extends ExpandableListActivity {
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         //一级条目
         List<Map<String, String>>groups=new ArrayList<Map<String,String>>();
         Map<String, String> group1=new HashMap<String, String>();
         group1.put("group","第一组");
         Map<String, String> group2=new HashMap<String, String>();
         group2.put("group", "第二组");
         groups.add(group1);
         groups.add(group2);
         //二组条目
         List<List<Map<String, String>>> childs=new ArrayList<List<Map<String,String>>>();
         //第一组二级科目数据
         List<Map<String, String>> child1=new ArrayList<Map<String,String>>();
         Map<String, String> item1=new HashMap<String, String>();
         item1.put("child","科目-1");
         Map<String, String> item2=new HashMap<String, String>();
         item2.put("child","科目-2");
         child1.add(item1);
         child1.add(item2);
         //第二组二级科目数据
         List<Map<String, String>> child2=new ArrayList<Map<String,String>>();
         Map<String, String> item3=new HashMap<String, String>();
         item3.put("child","科目-3");
         Map<String, String> item4=new HashMap<String, String>();
         item4.put("child","科目-4");
         Map<String, String> item5=new HashMap<String, String>();
         item5.put("child","科目-5");
         child2.add(item3);
         child2.add(item4);
         child2.add(item5);
         childs.add(child1);
         childs.add(child2);
         //SimpleExpandableListAdapter构造函数参数
         //1.content
         //2.一级条目数据
         //3.一级条目布局文件
         //4.一级条目Key
         //5.一级条目显示信息控件id
         //6.二级条目数据
         //7.二级条目布局文件
         //8.二级条目Key
         //9.二级条目显示信息控件id
         SimpleExpandableListAdapter adapter=new SimpleExpandableListAdapter(this,groups,R.layout.group,
         new String[]{"group"},new int[]{R.id.groupTo}, childs, R.layout.child, new String[]{"child"},
         new int[]{R.id.childTo});
         setListAdapter(adapter);

     }
 }

仿qq联系人 学习笔记---ExpandableListActivity的使用的更多相关文章

  1. WPF 自定义TreeView控件样式,仿QQ联系人列表

    一.前言 TreeView控件在项目中使用比较频繁,普通的TreeView并不能满足我们的需求.因此我们需要滴对TreeView进行改造.下面的内容将介绍仿QQ联系人TreeView样式及TreeVi ...

  2. 动手分析安卓仿QQ联系人列表TreeView控件

    因项目需要需要用到仿QQ联系人列表的控件样式,于是网上找到一个轮子(https://github.com/TealerProg/TreeView),工作完成现在简单分析一下这个源码.   一. 需要用 ...

  3. Android学习之仿QQ側滑功能的实现

    如今项目越来越多的应用了滑动删除的功能,Android本来遵循的是长按删除,IOS定制的是滑动删除,不可否认滑动删除确实在客户体验上要好一点,所以看了非常多关于仿QQ滑动删除的样例,还是感觉代码家的A ...

  4. ArcGIS JS 学习笔记1 用ArcGIS JS 实现仿百度地图的距离量测和面积量测

    一.开篇 在博客注册了三年,今天才决定写第一篇博客,警告自己不要懒!!! 二.关于ArcGIS JS 版本选择 在写这篇博客时ArcGIS JS 4.0正式版已经发布.它和3.x版本的不同是,Map不 ...

  5. android开发学习 ------- 仿QQ侧滑效果的实现

    需要做一个仿QQ侧滑删除的一个效果: 一开始是毫无头绪,百度找思路,找到  https://blog.csdn.net/xiaxiazaizai01/article/details/53036994  ...

  6. C#仿QQ皮肤-Label与ListBox 控件实现----寻求滚动条的解决方案

    大家还是先来看看效果吧 这次之所以一次写两个控件,其实主要是因为Label控件实在是太简单了没有必要放放一个文章里写,所以就一次性来了.Label控件我就不再多说了,我直接把代码贴一下吧因为就几行代码 ...

  7. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  8. knockout学习笔记目录

    关于knockout学习系列的文章已经写完,这里主要是做个总结,并且将目录罗列出来,方便查看.欢迎各位大神拍砖和讨论. 总结 kncokout是一个轻量级的UI类库,通过MVVM模式使前端的UI简单话 ...

  9. WeX5学习笔记

    目录 WeX5学习笔记... 1 1.轻松看透WeX5产品能力和技术... 1 2.WeX5可以怎么玩?... 3 一.纯本地App. 3 二.关联一个网站,希望默认就打开某页... 4 三.UI设计 ...

随机推荐

  1. 【Python】[进程和线程]多进程,多线程,ThreadLocal,进程VS.线程,分布式进程

    1.多进程,multiprocessing模块,   进程间的通信:Queue[队列],Pipes[管子]2.多线程,    注意:线程公用变量,混乱   解决方法Lock:因为只有一个锁,所以当要执 ...

  2. TCP/IP协议

    1.为什么有了IP地址还需要MAC地址? 首先,数据或者信息在网络上的传输需要两个地址:目的地址和下一跳地址.其中IP地址就是目的地址,而MAC地址则是下一跳地址.目的地址在经过路由器转发的时候是不会 ...

  3. pptpd

    18. pptp Server Administration This section covers a few tricks on pptp server management. It is far ...

  4. JavaScript零基础学习系列四

    案例分享 对象 具体的东西,在以js的眼光看所有的标签都是标签对象,对象是属性的无序集合. 创建对象有两种方式: 直接量: 构造器:所谓的构造器,其实就是函数,只不过这个函数有些特殊,因为它是用于创建 ...

  5. 解决:Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle

    同步cm12.1初始化出现的问题: fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: err ...

  6. LinuxMint 18 编译cm13.0 笔记

    1.安装依赖文件 sudo apt--dev libesd0-dev git-core gnupg flex bison gperf build-essential zip curl zlib1g-d ...

  7. CentOS 6.8_x64 Oracle 12C 安装

    1.下载地址 (需要注册oracle账号) 点击 2.登录CentOS 做准备工作 groupadd oinstall groupadd dba useradd -g oinstall -g dba ...

  8. a版本冲刺第六天

    队名:Aruba   队员: 黄辉昌 李陈辉 林炳锋 鄢继仁 张秀锋 章  鼎 学号 昨天完成的任务 今天做的任务 明天要做的任务 困难点 体会 408 学习<第一行代码> 学习活动的消息 ...

  9. usr/include/dispatch - dispatch_source

    博文一部分摘自:Parse分析,以下简称博文1(LeanCloud工程师针对Parse使用GCD的分析) 博文一部分摘自:GCD入门,以下简称博文2 建议先了解一下:BSD基础知识 在Dispatch ...

  10. 【CityHunter】游戏进度总控,及需求设计

    需求列表 序号 标题 描述 进度 更新日期 1 游戏主界面 游戏进入的主操作界面,     2 基础定位功能 实现自身定位功能,     3 特殊地点的Marker 搜索周边银行(资产保护).医院(状 ...