結構
繼承關係
public abstract class BaseAdapter
extends Object implementsListAdapter SpinnerAdapter
java.lang.Object
android.widget.BaseAdapter
子類及間接子類
直接子類
ArrayAdapter<T>, CursorAdapter, SimpleAdapter
間接子類
ResourceCursorAdapter, SimpleCursorAdapter
類概述
用於ListView(實現指定的ListAdapter介面)和Spinner(實現指定的SpinnerAdapter介面)的共同實現一個公用基類適配器。
公用方法
public abstract booleanareAllItemsEnabled()
在ListAdapter中所有的項目都是可用的?如果是,則代表所有的項目都是可選擇,可用滑鼠點擊的。
傳回值
如果所有項目是可用的返回真
public abstractView
getDropDownView(int position,View convertView,
ViewGroup parent)
獲得一個在指定位置上顯示下拉彈出資料的視圖。
參數
position 想得到項目視圖的索引
convertView 如果可能舊有的視圖重新使用。註解:在使用之前應該檢查這個視圖不是空的並且類型合適。如果轉換視圖顯示正確的資料是不可能的,這個方法能夠建立一個新的視圖
parent 視圖最終將依附的父物件。
傳回值
一個對應指定位置的資料的視圖。
public int
getItemViewType(int position)
擷取通過getView為指定項目建立的視圖的類型。
參數
position 在adapter資料裡我們想知道檢視類型的項目的位置
傳回值
一個整形的檢視類型的描述。如果一個視圖通過getView(int, View, ViewGroup)方法轉換成另一個視圖,則兩個視圖將共用同一類型。注意:整形必須在0和getViewTypeCount()–
1之間。IGNORE_ITEM_VIEW_TYPE也可以返回。
public int
getViewTypeCount()
返回通過getView(int, View, ViewGroup))建立的視圖的類型數量。每一個類型表示一組通過getView(int, View, ViewGroup)方法轉換過的視圖。如果adapter針對所有項目返回相同的檢視類型,這個方法返回1。
這個方法僅僅當adapter設定在AdapterView時調用。
傳回值
通過這個adapter建立的檢視類型的數量
public booleanhasStableIds()
表明是否項目ID時對基礎資料的變化保持穩定的。
傳回值
如果相同的ID指相同的對象,返回真
public booleanisEmpty()
adapter資料項目是否等於零
public booleanisEnabled(int position)
如果指定的位置不是一個隔離項目(隔離項目是一個不可選擇,不可用滑鼠點擊的項目)則返回真。如果位置是無效的,其結果將是不確定的。在這種情況下一個ArrayIndexOutOfBoundsException(越界)異常將拋出
參數
position 項目的索引
傳回值
如果這個項目不是一個隔離項目則返回真。
public void
notifyDataSetChanged()
通知附屬的視圖基礎資料已經改變,視圖應該自動重新整理。
public void
notifyDataSetInvalidated()
監控資料的observer不再有效
public void
registerDataSetObserver(DataSetObserver observer)
註冊一個用於adapter的observer(觀察者:監控資料發生改變時被調用)
參數
observer 當資料發生改變時得到通知的對象
public void
unregisterDataSetObserver(DataSetObserver observer)
移除先前通過registerDataSetObserver(DataSetObserver)方法註冊過的observer(觀察者:監控資料發生改變的類)
參數
observer 移除註冊的對象
http://www.android123.com.cn/kaifafaq/604.html (baseAdapter的bug
http://blog.csdn.net/Android_Tutor/article/details/5707835 (Android中萬能的BaseAdapter(Spinner,ListView,GridView)的使用!