博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ExpandableListActivity的使用
阅读量:6843 次
发布时间:2019-06-26

本文共 6010 字,大约阅读时间需要 20 分钟。

一、结构

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 亦将支持这样的特殊元素。(子元素嵌套组元素的情

 

  三、构造函数          

     public   SimpleExpandableListAdapter(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          关联的 的上下文。

                  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 参数获得列元素的数据。

 

     public   SimpleExpandableListAdapter   (Context   context,   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 参数获得列元素的数据。

          

     public   SimpleExpandableListAdapter(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 参数获得列元素的数据。

import android.app.ExpandableListActivity; import android.os.Bundle; import android.widget.ExpandableListAdapter; import android.widget.SimpleExpandableListAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class expandablelist extends ExpandableListActivity { private static final String SHELF = "SHELF"; private static final String BOOK = "BOOK"; private ExpandableListAdapter mAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 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 = 1; i < 4; i++) { Map<String, String> curGroupMap = new HashMap<String, String>(); groupData.add(curGroupMap); curGroupMap.put(SHELF, "Bookshelf-" + i); List<Map<String, String>> children = new ArrayList<Map<String, String>>(); for (int j = 1; j < 3; j++) { Map<String, String> curChildMap = new HashMap<String, String>(); children.add(curChildMap); curChildMap.put(SHELF, "Book- " + j); } childData.add(children); } // Set up our adapter mAdapter = new SimpleExpandableListAdapter( this, groupData, android.R.layout.simple_expandable_list_item_1, new String[] { SHELF, BOOK}, new int[] { android.R.id.text1, android.R.id.text2 }, childData, android.R.layout.simple_expandable_list_item_2, new String[] { SHELF, BOOK}, new int[] { android.R.id.text1, android.R.id.text2 } ); setListAdapter(mAdapter); } }  

转载地址:http://gnbul.baihongyu.com/

你可能感兴趣的文章