編輯:高級開發
本章內容是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 教程
android手機操作系統基本特征包括內部集成浏覽器 該浏覽器基於開源的WebKit 引擎,優化的圖形庫 包括2D和3D圖形庫,3D圖形庫基於OpenGL ES 1.0
在後台線程中執行各種操作(網絡連接、大數據存儲)的時候,我們希望讓客戶能看到後台有操作在進行,那麼既能有效的提示用戶,又不占用當前操作空間,最好的方法就是在標題欄有個進
理解布局對於好的android應用設計來說是非常重要的。在這個教程裡,我們提供一個關於布局如何適應android應用程序架構的概述。我們還探討了一些特定的可用布局控件,
android Pad 和Phone一樣都存在多尺寸問題。對於Pad,更揪心的是屏幕比例和尺寸的多樣性,這些因素直接影響著UI的表現方式。比較困惑的是我們的如何設計一個