仿qq联系人 学习笔记---ExpandableListActivity的使用
【转】原地址 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的使用的更多相关文章
- WPF 自定义TreeView控件样式,仿QQ联系人列表
一.前言 TreeView控件在项目中使用比较频繁,普通的TreeView并不能满足我们的需求.因此我们需要滴对TreeView进行改造.下面的内容将介绍仿QQ联系人TreeView样式及TreeVi ...
- 动手分析安卓仿QQ联系人列表TreeView控件
因项目需要需要用到仿QQ联系人列表的控件样式,于是网上找到一个轮子(https://github.com/TealerProg/TreeView),工作完成现在简单分析一下这个源码. 一. 需要用 ...
- Android学习之仿QQ側滑功能的实现
如今项目越来越多的应用了滑动删除的功能,Android本来遵循的是长按删除,IOS定制的是滑动删除,不可否认滑动删除确实在客户体验上要好一点,所以看了非常多关于仿QQ滑动删除的样例,还是感觉代码家的A ...
- ArcGIS JS 学习笔记1 用ArcGIS JS 实现仿百度地图的距离量测和面积量测
一.开篇 在博客注册了三年,今天才决定写第一篇博客,警告自己不要懒!!! 二.关于ArcGIS JS 版本选择 在写这篇博客时ArcGIS JS 4.0正式版已经发布.它和3.x版本的不同是,Map不 ...
- android开发学习 ------- 仿QQ侧滑效果的实现
需要做一个仿QQ侧滑删除的一个效果: 一开始是毫无头绪,百度找思路,找到 https://blog.csdn.net/xiaxiazaizai01/article/details/53036994 ...
- C#仿QQ皮肤-Label与ListBox 控件实现----寻求滚动条的解决方案
大家还是先来看看效果吧 这次之所以一次写两个控件,其实主要是因为Label控件实在是太简单了没有必要放放一个文章里写,所以就一次性来了.Label控件我就不再多说了,我直接把代码贴一下吧因为就几行代码 ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- knockout学习笔记目录
关于knockout学习系列的文章已经写完,这里主要是做个总结,并且将目录罗列出来,方便查看.欢迎各位大神拍砖和讨论. 总结 kncokout是一个轻量级的UI类库,通过MVVM模式使前端的UI简单话 ...
- WeX5学习笔记
目录 WeX5学习笔记... 1 1.轻松看透WeX5产品能力和技术... 1 2.WeX5可以怎么玩?... 3 一.纯本地App. 3 二.关联一个网站,希望默认就打开某页... 4 三.UI设计 ...
随机推荐
- 【好玩的前端知识】 Kube
Kube javascript tools
- 软件工程(FZU2015)赛季得分榜,第五回合
目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...
- C#稳固基础:传统遍历与迭代器
Hello,Coders.我们除了天天的码 if…else…之外,还会不断的码出foreach.我今天要说的是:传统遍历需实现的接口及我们还有一种更简洁优雅的方式实现多种迭代器. 传统遍历 传统的遍历 ...
- javaScript获取url中的参数
var urlTools = { //获取RUL参数值 getUrlParam: function(name) { /*?videoId=identification */ var params = ...
- [Think In Java]基础拾遗3 - 容器、I/O、NIO、序列化
目录 第十一章 持有对象第十七章 容器深入研究第十八章 Java I/O系统 第十一章 持有对象 1. java容器概览 java容器的两种主要类型(它们之间的主要区别在于容器中每个“槽”保存的元素个 ...
- DOSBOX 自动挂载技巧
DOSBOX下载之后,win10已经不支持debug了(win-XP虚拟机有!),所以需要单独下载,每次使用都需要挂载上去,十分不方便. 解决办法是修改属性文件,每次挂载都自动执行: 把编写好的汇编文 ...
- 国内优秀npm镜像推荐及使用
npm全称Node Package Manager,是node.js的模块依赖管理工具.由于npm的源在国外,所以国内用户使用起来各种不方便.下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选 ...
- PHP 文件管理
主页面: <?php session_start(); $filename=""; if(!empty($_SESSION["lujing"])) { $ ...
- lua c api
#include <stdio.h> #include <string.h> extern "C"{ #include <lua.h> #inc ...
- webpack入坑之旅
转自: http://guowenfh.github.io/2016/03/24/vue-webpack-01-base/ http://guowenfh.github.io/2016/03/25/v ...