Mars视频笔记——ExpandableListActivity
ExpandableListActivity使用使用方法(可以和ListActivity进行对比)创建一个Activity类继承ExpandableListActvity三个layout主布局 (注意这里2个id都是android内置的 不是+id)包含<ExpandableListView> 注意其中android:id="@id/android:list" 还有一个android:drawSelectorOnTop="false"(选中时是否遮盖文字)<TextView android:id="@id/android:empty"> 当无数据时一级目录布局二级目录布局(条目item样式)创建Adapter将simpleExpandableListAdapter对象设置给当前ExpandableListActivitysetListAdapter(adapter);SimpleExpandableListAdapter使用为ExpandableListActivity提供数据//定义List 为一级条目提供数据List<Map<String, String>> groups=new ArrayList<Map<String, String>>();需要几个条目 生成几个Map对象Map<String, String> m1=new HashMap<String, String>();m1.put(group,Group1);m2.put(group,Group2);groups.add(m1);groups.add(m2);
//定义List 设置二级子条目 一个子条目一个List 一个项 一个Map方法同上 建List(child1 child2)和Map(child:child1Data1;child:child1Data2)
//定义一个List 存储所有二级条目数据*List<List<Map<String, String>>> childs = new ArrayListM<List<Map<String, String>>>();childs.add(child1);childs.add(child2);
//生成一个SimpleExpandableListAdapter对象new SimpleExpandableListAdapter(...);参数包括(context上下文对象,一级条目List对象,一级条目布局,?new String[]{"groups"})指定一级条目数据的key,new int[]{R.id.groupTo}指定一级条目数据显示的控件id,二级条目的数据childs,二级条目布局,二级条目数据key(child),二级条目控件id}
最终目录结构Group1child1Data1child1Data2Group2child2Data