Android之ExpandableListView
来源:互联网 发布:java bytebuffer put 编辑:程序博客网 时间:2024/06/05 23:10
一.简单示例
src
public class AndroidUIActivity extends ExpandableListActivity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 准备顶层列表数据List<Map<String, String>> topList = new ArrayList<Map<String, String>>();Map<String, String> topMap1 = new HashMap<String, String>();Map<String, String> topMap2 = new HashMap<String, String>();Map<String, String> topMap3 = new HashMap<String, String>();topMap1.put("month", "三月测评项");topMap2.put("month", "四月测评项");topMap3.put("month", "五月测评项");topList.add(topMap1);topList.add(topMap2);topList.add(topMap3);// 准备二层列表数据List<List<Map<String, String>>> nestList = new ArrayList<List<Map<String, String>>>();// 准备二层列表第一个子列表数据List<Map<String, String>> nestList1 = new ArrayList<Map<String, String>>();Map<String, String> nestMap1 = new HashMap<String, String>();Map<String, String> nestMap2 = new HashMap<String, String>();Map<String, String> nestMap3 = new HashMap<String, String>();nestMap1.put("test", "看手");nestMap2.put("test", "吃手");nestMap3.put("test", "玩手");nestList1.add(nestMap1);nestList1.add(nestMap2);nestList1.add(nestMap3);// 准备二层列表第二个子列表数据List<Map<String, String>> nestList2 = new ArrayList<Map<String, String>>();Map<String, String> nestMap4 = new HashMap<String, String>();Map<String, String> nestMap5 = new HashMap<String, String>();nestMap4.put("test", "翻身");nestMap5.put("test", "辨别声音来源方位");nestList2.add(nestMap4);nestList2.add(nestMap5);// 准备二层列表第三个子列表数据List<Map<String, String>> nestList3 = new ArrayList<Map<String, String>>();Map<String, String> nestMap6 = new HashMap<String, String>();Map<String, String> nestMap7 = new HashMap<String, String>();nestMap6.put("test", "你好");nestMap7.put("test", "你坏");nestList3.add(nestMap6);nestList3.add(nestMap7);// 把子列表数据放入nestList.add(nestList1);nestList.add(nestList2);nestList.add(nestList3);// 准备数据匹配器SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(this, // 1.上下文topList, // 2.顶层数据列表android.R.layout.simple_expandable_list_item_1, // 3.一层显示样式new String[] { "month" }, // 4.顶层map的键new int[] { android.R.id.text1 }, // 5.顶层数据显示的View IDnestList, // 6.二层数据列表android.R.layout.simple_list_item_1, // 7.二层显示样式new String[] { "test"}, // 8.二层map的键new int[] { android.R.id.text1 } // 9.二层数据显示的View ID);// 设置数据匹配器this.setListAdapter(adapter);}@Overridepublic boolean onChildClick(ExpandableListView parent, View v,int groupPosition, int childPosition, long id) {Toast.makeText(this,"嵌套列表被点击,顶层列表定位" + groupPosition + "二层列表定位" + childPosition,Toast.LENGTH_SHORT).show();return super.onChildClick(parent, v, groupPosition, childPosition, id);}@Overridepublic void onGroupCollapse(int groupPosition) {Toast.makeText(this, "顶层列表收缩,列表定位" + groupPosition, Toast.LENGTH_SHORT).show();super.onGroupCollapse(groupPosition);}@Overridepublic void onGroupExpand(int groupPosition) {Toast.makeText(this, "顶层列表展开,列表定位" + groupPosition, Toast.LENGTH_SHORT).show();super.onGroupExpand(groupPosition);}}
main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ExpandableListView android:id="@id/android:list" android:layout_width="match_parent" android:layout_height="wrap_content" > </ExpandableListView></LinearLayout>
二. 运行结果
启动
展开列表三
点击列表三子列表1
- Android控件之ExpandableListView
- Android之ExpandableListView
- Android控件之ExpandableListView
- Android控件之ExpandableListView
- Android开发之ExpandableListView
- Android控件之ExpandableListView
- android之ExpandableListView
- Android控件之ExpandableListView
- Android开发之ExpandableListView
- Android之ExpandableListView
- Android之ExpandableListView
- Android之ExpandableListView
- Android开发之ExpandableListView
- Android开发之ExpandableListView
- Android 之ExpandableListView使用
- Android开发之ExpandableListView
- android 学习之ExpandableListView
- Android之ExpandableListView
- J2SE J2EE Tomcat Weblogic 获取 ClassPath 下文件方法
- Understand---> Intent Filter
- Chrome的三个实用小技巧
- IE下面解析xml文件
- ArcGIS.9.3超详细安装教程
- Android之ExpandableListView
- Kscope 1.6.2 快捷键使用总结
- 几种编程命名规则
- 与临时对象的斗争(下)
- 与临时对象的斗争(上)
- Oracle 使用SQL Loader 从外部导入数据
- .NET类库中发现设计模式:迭代器模式
- 测试
- JSP设计模式