天天看点

Android 中文 API (93) —— BaseExpandableListAdapter

 一、结构

public abstract class BaseExpandableListAdapter extends Object

java.lang.Object

android.widget.BaseExpandableListAdapter 

直接子类

                CursorTreeAdapter,SimpleExpandableListAdapter

间接子类

二、概述

  (译者注:组元素表示可折叠的列表项,子元素表示列表项展开后看到的多个子元素项。由于可折叠列表单纯寻找组元素和子元素的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()

             返回值

                   BaseExpandableListAdapter默认返回1。

  public long getCombinedChildId (long groupId, long childId)

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

  实现返回一个long型:

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

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

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

               参数

                   groupID   包含该子元素的组ID

                   childID      子元素的ID号

                 返回

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

  public long getCombinedGroupId (long groupId)

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

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

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

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

  public int getGroupType (int groupPosition)

<code>    </code>  <code>参数</code>

<code>        </code>  <code>groupPosition </code><code>应返回类型所在组的位置</code>

<code>    </code>  <code>返回</code>

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

  public int getGroupTypeCount ()

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

            返回

              BaseExpandableListAdapter默认返回1.

  public boolean isEmpty ()

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

  public void notifyDataSetChanged ()

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

  <code>参见</code><code></code>

  public void notifyDataSetInvalidated ()

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

<code>      </code>   <code>参见</code><code></code>

  public void onGroupCollapsed (int groupPosition)

  <code>当组折叠的时候被调用。</code><code></code>

                   参数

                            groupPosition 要折叠的组所在位置

  public void onGroupExpanded (int groupPosition)

  当组展开的时候被调用。

                           groupPosition 要折叠的组所在位置

  public void registerDataSetObserver (DataSetObserver observer)

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

  public void unregisterDataSetObserver (DataSetObserver observer)

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

四、补充 

         文章链接

继续阅读