展会信息港展会大全

Android ApiDemos示例解析(114):Views->Expandable Lists->3. SimpleAdapter
来源:互联网   发布日期:2015-10-02 16:20:33   浏览:1834次  

导读:本例介绍了使用如何Map-based 数据作为Expandable List的数据源。其中Group和Child的定义如下[java]List<Map<String, String>>...

本例介绍了使用如何Map-based 数据作为Expandable List的数据源。

其中Group和Child的定义如下

[java]

List<Map<String, String>> groupData

= new ArrayList<Map<String, String>>();

List<List<Map<String, String>>> childData

= new ArrayList<List<Map<String, String>>>();

List<Map<String, String>> groupData

= new ArrayList<Map<String, String>>();

List<List<Map<String, String>>> childData

= new ArrayList<List<Map<String, String>>>();

看起来有点复杂:-)。 Map<String,String> 类似于Hash表,这里可以看成是数据库表的一行,以列名作为关键字。比如本例一行数据为

本例为groupData 定义了20个只,从group 0 到group 19 ,对于每个group ,其下定义了15个子元素,从child 0 到 child 14

每个元素也有如下的值:

有了groupdata 和childdata ,就可以调用SimpleExpandableListAdapter构造函数:

[java]

// Set up our adapter

mAdapter = new SimpleExpandableListAdapter(

this,

groupData,

android.R.layout.simple_expandable_list_item_1,

new String[] { NAME, IS_EVEN },

new int[] { android.R.id.text1, android.R.id.text2 },

childData,

android.R.layout.simple_expandable_list_item_2,

new String[] { NAME, IS_EVEN },

new int[] { android.R.id.text1, android.R.id.text2 }

);

// Set up our adapter

mAdapter = new SimpleExpandableListAdapter(

this,

groupData,

android.R.layout.simple_expandable_list_item_1,

new String[] { NAME, IS_EVEN },

new int[] { android.R.id.text1, android.R.id.text2 },

childData,

android.R.layout.simple_expandable_list_item_2,

new String[] { NAME, IS_EVEN },

new int[] { android.R.id.text1, android.R.id.text2 }

);

public 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)

context: context对象,可以使用activity。

groupdata : group 数据源

groupLayout: Group Layout资源ID,本例使用系统资源simple_expandable_list_item_2.

childdata: child 数据源

childLayout: child Layout资源ID,本例使用系统资源simple_expandable_list_item_2。

groupFrom: 需要显示的组列名数组

groupTo: 对应每个组的列对应的View 的id

childrenFrom: 需要显示的组成员列名

childrenTo:对应每个组成员的列对应的View 的id。

simple_expandable_list_item_1.xml 和simple_expandable_list_item_2.xml 可以参见http://www.netmite.com/android/mydroid/frameworks/base/core/res/res/layout/

simple_expandable_list_item_1 定义了一个文本框 id为text1 ,原例使用simple_expandable_list_item_1 显示group,对应的IS_EVEN 使用text2 为显示View的id在simple_expandable_list_item_1 不存在,因此只会显示Group xx。使用上述修改后,group 和 child 都使用simple_expandable_list_item_2 ,NAME 和 IS_EVEN 都会显示:

作者:mapdigit

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港