BaseExpandableListAdapter
  RdQRW6yvPB67 2023年11月02日 46 0


转载自:中国手机开发网

一、结构
  public abstract class BaseExpandableListAdapter extends Object implements ExpandableListAdapter, HeterogeneousExpandableList
  直接子类:CursorTreeAdapter,SimpleExpandableListAdapter
  间接子类:ResourceCursorTreeAdapter, SimpleCursorTreeAdapter

二、概述
  BaseExpandableListAdapter是ExpandableListAdapter的抽象基类,从一些数据中提供数据和视图给可折叠列表视图。
  所有继承本类的Adapters需要保证实现的getCombinedChildId(long, long)和 getCombinedGroupId(long)方法能正确地从View组或View子元素的ID中生成唯一的ID号。
  (译者注:组元素表示可折叠的列表项,子元素表示列表项展开后看到的多个子元素项。由于可折叠列表单纯寻找组元素和子元素的ID不是很方便,因此使用联合ID的方式来解决。于是有了getCombinedChildId()和getCombinedGroupId()方法。在andorid自带的ApiDomos的例子中有这个的代码:App/View/ExpandableList1)。

三、公共方法
  public boolean areAllItemsEnabled ()是否启用所有元素。
  public int getChildType (int groupPosition, int childPosition)获取由getChildView(int, int, boolean, View, ViewGroup)方法创建的指定子元素类型。参数:groupPosition 子元素所在的组位置,childPosition 子元素所在的位置。返回值:0表示任意一个子元素类型,因此此时应当只声明一种子元素类型。
  public int getChildTypeCount()获取由getChildView(int, int, boolean, View,ViewGroup)创建的所有子元素类型个数。每种类型表示一个能被getChildView(int, int, boolean, View, ViewGroup)转换的(任意组中的)View集合。如果适配器总是从所有的子元素中返回同一种类型,本方法将返回1。本方法将仅仅在AdapterView设置适配器时被调用。返回值: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号返回唯一的ID。此外,若hasStableIds()是true,那么必须要返回稳定的ID。参数:groupID 包含该子元素的组ID,childID 子元素的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号返回唯一的ID。此外,若hasStableIds()是true,那么必须要返回稳定的ID。参数:groupID 包含该子元素的组ID。返回
  public int getGroupType (int groupPosition)获得由getGroupView(int, boolean, View, ViewGroup)方法创建的组元素类型。为设置的组元素。参数:groupPosition 应返回类型所在组的位置。返回:0表示任意组位置,因此此时应当只申明了一种组类型。
  public int getGroupTypeCount ()返回由getGroupView(int, boolean, View, ViewGroup)方法创建的组视图类型个数。每个类型表示一个能被getGroupView(int, boolean, View, ViewGroup)转换的View集合。如果适配器总是返回同一种组类型,则此时本方法将返回1。本方法将仅当适配器被AdapterView设置时调用。返回:BaseExpandableListAdapter默认返回1.
  public boolean isEmpty ()(译者注:如果适配器没有任何数据,返回真。参见:Adapter)
  public void notifyDataSetChanged ()(译者注:当后台数据集发生改变时,调用此方法响应数据集的更改。)参见:notifyChanged()
  public void notifyDataSetInvalidated ()(译者注:当后台数据集不被验证的时候,调用此方法。)参见:notifyInvalidated()
  public void onGroupCollapsed (int groupPosition)当组折叠的时候被调用。参数:groupPosition 要折叠的组所在位置
  public void onGroupExpanded (int groupPosition)当组展开的时候被调用。参数:groupPosition 要折叠的组所在位置
  public void registerDataSetObserver (DataSetObserver observer)(译者注:注册当用该适配器修改数据时调用的观察器。)
  public void unregisterDataSetObserver (DataSetObserver observer)(译者注:注销之前通过 registerDataSetObserver(DataSetObserver) 方法注册到该适配器的观察器。)



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

RdQRW6yvPB67