博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 中文 API (93) —— BaseExpandableListAdapter
阅读量:6595 次
发布时间:2019-06-24

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

正文

  一、结构

 

 

public abstract class BaseExpandableListAdapter extends Object

implements , 

 

java.lang.Object

android.widget.BaseExpandableListAdapter

 

直接子类

                CursorTreeAdapter,SimpleExpandableListAdapter

间接子类

 

 

  二、概述

 

  BaseExpandableListAdapter的抽象基类,从一些数据中提供数据和视图给可折叠列表视图。

  所有继承本类的Adapters需要保证实现的 方法能正确地从View组或View子元素的ID中生成唯一的ID号。

  (译者注:组元素表示可折叠的列表项,子元素表示列表项展开后看到的多个子元素项。由于可折叠列表单纯寻找组元素和子元素的ID不是很方便,因此使用联合ID的方式来解决。于是有了getCombinedChildId()getCombinedGroupId()方法。在andorid自带的ApiDomos的例子中有这个的代码:App/View/ExpandableList1)。

 

 

  三、公共方法 

 

 

  public boolean areAllItemsEnabled ()

  是否启用所有元素。

 

  public int getChildType (int groupPosition, int childPosition)

  获取由方法创建的指定子元素类型。

  参数

                   groupPosition 子元素所在的组位置

                       childPosition 子元素所在的位置

                 返回值

                       0表示任意一个子元素类型,因此此时应当只声明一种子元素类型。

 

  public int getChildTypeCount()

  获取由创建的所有子元素类型个数。每种类型表示一个能被转换的(任意组中的)View集合。如果适配器总是从所有的子元素中返回同一种类型,本方法将返回1

  本方法将仅仅在设置适配器时被调用。

             返回值

                   BaseExpandableListAdapter默认返回1

 

  public long getCombinedChildId (long groupId, long childId)

  若你预见以下默认实现的IDs可能出现冲突,请重写本方法。

  实现返回一个long型:

  * 第0:不管ID指向的是一个子元素(未设置)还是一个组(已设置),对于本方法bit值为1.

  * 1-31:小于31位的组ID

  * 32-63:小于32位的子元素ID

  从列表所有项(组或子项)中获得一个唯一的子ID号。可折叠列表要求每个元素(组或子项)在所有的子元素和组中有一个唯一的ID。本方法负责根据所给的子ID号和组ID号返回唯一的ID。此外,若true,那么必须要返回稳定的ID

               参数

                   groupID   包含该子元素的组ID

                   childID      子元素的ID

                 返回

                   列表所有项(组或子项)中唯一的(和可能稳定)的子元素ID号。

 

  public long getCombinedGroupId (long groupId)

  若你预见以下默认实现产生IDs冲突的话,请重写本方法。

  实现返回一个long型:

   * 0:不管ID指向的是一个子元素(未设置)还是一个组(已设置),对于本方法bit值为1.

   * 1-31:小于31位的组ID

   * 32-63:小于32位的子元素ID

  从列表所有项(组或子项)中获得一个唯一的子ID号。可折叠列表要求每个元素(组或子项)在所有的子元素和组中有一个唯一的ID。本方法负责根据所给的子ID号和组ID号返回唯一的ID。此外,若true,那么必须要返回稳定的ID

  参数

                   groupID   包含该子元素的组ID

                 返回

                   列表所有项(组或子项)中唯一的(和可能稳定)的子元素ID号。

 

  public int getGroupType (int groupPosition)

  获得由方法创建的组元素类型。为设置的组元素。

      参数

          groupPosition 应返回类型所在组的位置

      返回

          0表示任意组位置,因此此时应当只申明了一种组类型。

 

  public int getGroupTypeCount ()

  返回由方法创建的组视图类型个数。每个类型表示一个能被转换的View集合。如果适配器总是返回同一种组类型,则此时本方法将返回1.

  本方法将仅当适配器被AdapterView设置时调用。

            返回

              BaseExpandableListAdapter默认返回1.

 

  public boolean isEmpty ()

          (译者注:如果适配器没有任何数据,返回真。参见Adapter

 

  public void notifyDataSetChanged ()

  (译者注:当后台数据集发生改变时,调用此方法响应数据集的更改。)

  参见

 

  public void notifyDataSetInvalidated ()

              (译者注:当后台数据集不被验证的时候,调用此方法。)

         参见

         

 

  public void onGroupCollapsed (int groupPosition)

  当组折叠的时候被调用。

                   参数

                            groupPosition 要折叠的组所在位置

 

  public void onGroupExpanded (int groupPosition)

  当组展开的时候被调用。

                   参数

                            groupPosition 要折叠的组所在位置

 

  public void registerDataSetObserver (DataSetObserver observer)

  (译者注:注册当用该适配器修改数据时调用的观察器。

 

  public void unregisterDataSetObserver (DataSetObserver observer)

  (译者注:注销之前通过 registerDataSetObserver(DataSetObserver) 方法注册到该适配器的观察器。

本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582413,如需转载请自行联系原作者

 

你可能感兴趣的文章
如何更好的优化MySQL数据库
查看>>
Linux笔记1--本地模拟SSH登陆Linux
查看>>
关于去掉ansible运行前的Warning
查看>>
MyBatis多对多关联查询示例——MyBatis学习笔记之十八
查看>>
ubutun下图片操作
查看>>
修复可执行文件关联
查看>>
Layout属性介绍
查看>>
Swift3.0新变化
查看>>
前端的ejs,less,ant design初探
查看>>
当高德一只脚踏入阿里大门时 就注定另一只脚也会迈进去
查看>>
构建Squid代理服务器
查看>>
css 总结1
查看>>
对Oracle ADF中间件开发的一点感觉
查看>>
AWS EBS Magnetic(standard)磁盘性能测试
查看>>
写一个函数,随机地从大小为n的数组中选取m个整数。要求每个元素被选中的概率相等。...
查看>>
Android 在eclipse中没有出现AVD的解决方法
查看>>
求解立方根
查看>>
Encoding Filters to ensure all data is utf-8
查看>>
docker学习笔记1—常用命令
查看>>
怎样分析一个广告创意
查看>>