Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android 中文 API:BaseExpandableListAdapter

Android 中文 API:BaseExpandableListAdapter

編輯:高級開發

 前言

  本章內容是android.widget.BaseExpandableListAdapter,版本為android 2.3 r1,翻譯來自"天涯明月刀",歡迎大家訪問他的博客:http://sd6733531.Javaeye.com/,再次感謝"天涯明月刀" !期待你一起參與android 中文API的翻譯,聯系我[email protected]

  聲明

  歡迎轉載,但請保留文章原始出處:)

  博客園:http://www.cnblogs.com/

  android中文翻譯組:http://goo.gl/6vJQl

  正文

  一、結構

  public abstract class BaseExpandableListAdapter extends Object

  implements ExpandableListAdapter, HeterogeneousExpandableList

  Java.lang.Object

  android.widget.BaseExpandableListAdapter

  直接子類

  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。此外,若hasStableIds()是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。此外,若hasStableIds()是true,那麼必須要返回穩定的ID。

  參數

  groupID 包含該子元素的組ID

  返回

  列表所有項(組或子項)中唯一的(和可能穩定)的子元素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) 方法注冊到該適配器的觀察器。)

  四、補充

  文章鏈接

  android BaseExpandableListAdapter 教程

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved