ExpandableListActivity的学习心得,以及SimpleExandableListAdapter的9个参数介绍

本文介绍了在Android开发中使用ExpandableListActivity创建分级列表时,重点解析了SimpleExpandableListAdapter的9个参数含义,特别是如何正确设置一级条目与二级条目的数据对应关系。通过示例说明了如何创建和添加数据,以及如何定义样式以展示一级和二级条目信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

      当我们在使用ExpandableListActivity来实现分级列表的时候,很多人搞不懂SimpleExpandableListAdapter里的9个参数的意义,以及如何来控制一级条目下的二级条目信息。下面我来讲解一下我在学习完ExpandableListActivity的经验,首先来看一下官方文档中的SimpleExpandableListAdapter的构造介绍:

 

SimpleExpandableListAdapter (Context context, List<? extends Map<String, ?>> groupData, int groupLayout, String[] groupFrom, int[] groupTo,List<? extends List<? extends Map<String, ?>>> childData, int childLayout, String[] childFrom, int[] childTo)

参数讲解:

 

 

1.Context contextcontext就是我们加入该ExpandableListActivity的上下文,一般设置为this,或者xxx.this

 

2.List<? extends Map<String, ?>> groupDatagroupData就是一级条目,其中我们经常将其设置为ArrayList<HashMap<String,String>>,每一个一级条目的名称都是与一个HashMap<String,String>对应。

 

3.int groupLayout:这个参数是用来表示一级条目样式的,一般都是我们自己定义,可以是简单点的TextView,也可以根据程序需要自定义更加绚丽的样式,和ListActivity中为每一个Item定义样式一样,一通百通。

 

4.String[] groupFrom:因为我们在上面的groupData中使用Map<String,?>来定义一级条目,所以这里要通过Map中的key值来锁定显示的信息,这个groupFrom就是上面HashMap中的key值。

 

5.int[] groupTo:我们在这里可以横向比对下ArrayAdapter中的参数,其实这几个适配器的参数都大同小异的。这个groupTo就是在布局里显示一级条目信息的widgetid,例如你的样式如果定义为用一个TextView来显示一级条目名称,那这个groupTo就是这个TextViewid

 

 

6.List<? extends List<? extends Map<String, ?>>>  childData:这个参数最重要,这里的childData和上面的groupData意义相同,是二级条目的信息列表。这里就有很多朋友会问,在添加二级信息到一级列表信息时如何保证一二级信息的正确对应呢,这里有个窍门,我们一般在最后添加二级列表到一级列表时会先定义一个List<List<HashMap<String,String>>> list,这时需要在添加二级列表时保证添加的顺序和一级条目的顺序相互配合好,比如说我们定义了

List<HashMap<String,String>> list1

List<HashMap<String,String>> list2

List<HashMap<String,String>> list3这三个二级条目的信息列表

那么我们在向list中添加这三个List时就要与在定义一级条目时的顺序保持一致,

如果这时你按照list.add(list1);list.add(list2);list.add(list3);来添加,则显示时也是按照第一个一级条目对应list1,第二个一级条目对应list2显示;

而如果你按照list.add(list2);list.add(list3);list.add(list1); 来添加,则显示时就会按照第一个一级条目对应list2,第二个一级条目对应list3显示..这里大家一定要注意

这样就能正确对应住一二级列表了,因为在适配器定义时并没有明文定义对应信息。

 

7.int childLayout:这个参数是二级条目的显示样式,和上述的groupLayout作用相仿。

 

8.String[] childFrom:同样,二级条目也需要通过HashMap<String,?>的键值对来进行展示,这个参数就是为了正确找到二级列表信息的HashMapKey值。

 

9.int[] childTo:这个childTo就是在布局里显示二级条目里的widgetid

 

 

如果有不妥的地方还请大家拍砖,这时我博客的第一篇,也是我人生中的第一篇博客,以后会再接再厉。

                                                                                                 

2011-6-10-01:19   哈根达斯

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值