结构

继承关系

public abstract class SimpleExpandableListAdapter extends BaseExpandableListAdapter

java.lang.Object

android.widget.BaseExpandableListAdapter

android.widget.SimpleExpandableListAdapter

类概述

一个使用Map存储组元素和子元素的静态数据,使用XML资源文件定义组元素和子元素View如何显示的简单适配器。你可以区分指定组元素返回的数据是List<Map>类型。在ArrayList中的每个实体对应ExpandalbeList中的一个组。实体中的Map列表包含了组下的每行数据。你也可以指定一个XML文件来定义用于在组元素的View的显示。此时Map中的键值将与指定的View(XML中定义的view id)对应起来。子元素的处理情况类似。注意当可折叠的深度若不只1层,返回的数据将被指定为List类型。首个List对应子元素中所代表的组,第二个List对应孙子元素在子元素组中的位置。Map亦将支持这样的特殊元素。(子元素嵌套组元素的情况)

(译者注:ExpandableList支持深度大于1的情况。在andorid自带的ApiDomos的例子中有这个的代码:App/View/ExpandableList3)。

构造函数

publicSimpleExpandableListAdapter(Contextcontext,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 与SimpleExpandableListAdapter关联的ExpandableListView的上下文。

groupData 一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。

groupLayout 显示组元素的资源文件。该资源文件定义了如何显示组元素。该布局文件必须至少包括groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

groupFrom 一个键值列表。对应与组相关联的Map中的键值。

grouptTo 组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。

childData 一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

childLayout 显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到)

childFrom 定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

childTo 子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。

publicSimpleExpandableListAdapter(Contextcontext,List<? extends Map<String, ?>> groupData, int expandedGroupLayout, int collapsedGroupLayout,String[]groupFrom, int[] groupTo,List<? extends List<? extends Map<String, ?>>> childData, int childLayout,String[]childFrom, int[] childTo)

构造函数。

参数

context 与SimpleExpandableListAdapter关联的ExpandableListView的上下文。

groupData 一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。

expandedGroupLayout 定义组展开时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

collapasedGroupLayout 定义组折叠时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

groupFrom 一个键值列表。对应与组相关联的Map中的键值。

grouptTo 组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。

childData 一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

childLayout 显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到)

childFrom 定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

childTo 子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。

publicSimpleExpandableListAdapter(Contextcontext,List<? extends Map<String, ?>> groupData, int expandedGroupLayout, int collapsedGroupLayout,String[]groupFrom, int[] groupTo,List<? extends List<? extends Map<String, ?>>> childData, int childLayout, int lastChildLayout,String[]childFrom, int[] childTo)

构造函数。

参数

context 与SimpleExpandableListAdapter关联的ExpandableListView的上下文。

groupData 一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录。

expandedGroupLayout 定义组展开时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

collapasedGroupLayout 定义组折叠时的View的XML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View。(即groupTo中的View id数组必须都在该布局文件中找到)

groupFrom 一个键值列表。对应与组相关联的Map中的键值。

grouptTo 组View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个groupFrom参数获得列元素的数据。

childData 一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

childLayout 显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View。(即childTo中的view id数组必须都在该布局文件中找到)

lastChildLayout 定义每组中最后一个子元素的View资源布局情况。该布局文件应当至少包括所有在childTo中所定义的View。(即childTo中的View id数组必须都在该布局文件中找到)

childFrom 定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

childTo 子View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前N个View从前N个childFrom参数获得列元素的数据。

公共方法

publicObjectgetChild(int groupPosition, int childPosition)

public long getChildId (int groupPosition, int childPosition)

(译者注:获取与在给定组给予孩子相关的数据。)

publicView getChildView (int groupPosition, int childPosition, boolean isLastChild,ViewconvertView,ViewGroupparent)

(译者注:获取子项)

public int getChildrenCount (int groupPosition)

(译者注:返回在指定GroupChild数目。)

publicObject getGroup (int groupPosition)

public int getGroupCount ()

(译者注:返回Group的总数目。)

public long getGroupId (int groupPosition)

publicView getGroupView (int groupPosition, boolean isExpanded,ViewconvertView,ViewGroupparent)

(译者注:获取父项)

public boolean hasStableIds ()

public boolean isChildSelectable (int groupPosition, int childPosition)

(译者注:是否child获得焦点

publicView newChildView (boolean isLastChild,ViewGroupparent)

新建一个子元素View

参数

isLastChild 该child是否是组中的最后一个元素

parent 新的View的最终父亲。

返回

新的子元素View对象。

publicViewnewGroupView(boolean isExpanded,ViewGroupparent)

新建一个组元素View。

参数

isExpanded 该组元素是否当前处于折叠状态

parent 新View的最终父亲。

返回

新的组元素View对象。

补充

文章精选

ExpandableListActivity和SimpleExpandableListAdapter的使用方法

Expandable lists[blogspot]

示例代码:

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

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

for (int i = 0; i < 20; i++) {

Map<String, String> curGroupMap = new HashMap<String, String>();

groupData.add(curGroupMap);

curGroupMap.put(NAME, "Group " + i);

curGroupMap.put(IS_EVEN, (i % 2 == 0) ? "This group is even" : "This group is odd");

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

for (int j = 0; j < 15; j++) {

Map<String, String> curChildMap = new HashMap<String, String>();

children.add(curChildMap);

curChildMap.put(NAME, "Child " + j);

curChildMap.put(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child is odd");

}

childData.add(children);

}

// Set up our adapter

mAdapter = new SimpleExpandableListAdapter(

this,

groupData,

android.R.layout.simple_expandable_list_item_1,

new String[] { NAME, IS_EVEN },

newint[] { android.R.id.text1, android.R.id.text2 },

childData,

android.R.layout.simple_expandable_list_item_2,

new String[] { NAME, IS_EVEN },

newint[] { android.R.id.text1, android.R.id.text2 }

);

更多相关文章

  1. Android(安卓)> SQLite
  2. [Android实例] android json
  3. Android版本更新代码
  4. Android常用的简单代码
  5. android中的状态保存
  6. Android拍照、录像、录音代码范例
  7. mybatisplus的坑 insert标签insert into select无参数问题的解决
  8. python起点网月票榜字体反爬案例
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android(安卓)MD5加密算法
  2. Android数字跑动效果NumberRunView 类似
  3. Android开发学习:ImageView的scaletype属
  4. android_tips
  5. android RSA和Java RSA加密不一致的坑
  6. 禁止android显示状态栏
  7. Android中文API(138) —— RemoteViews
  8. Android(安卓)SQLiteOpenHelper Sqlite数
  9. Android架构组件-Navigation的使用(一)
  10. android配置X86虚拟机