正文
一、結構
public abstract class BaseAdapter
extends Object implements ListAdapter SpinnerAdapter
java.lang.Object
android.widget.BaseAdapter
直接子類
ArrayAdapter<T>, CursorAdapter, SimpleAdapter
間接子類
ResourceCursorAdapter, SimpleCursorAdapter
二、概述
用于ListView(實作指定的ListAdapter接口)和Spinner(實作指定的SpinnerAdapter接口)的共同實作一個公共基類擴充卡。
三、公共方法
public abstract boolean areAllItemsEnabled ()
在ListAdapter中所有的項目都是可用的?如果是,則代表所有的項目都是可選擇,可用滑鼠點選的。
傳回值
如果所有項目是可用的傳回真
獲得一個在指定位置上顯示下拉彈出資料的視圖。
參數
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 boolean hasStableIds ()
表明是否項目ID時對基礎資料的變化保持穩定的。
如果相同的ID指相同的對象,傳回真
public boolean isEmpty ()
adapter資料項是否等于零
public boolean isEnabled (int position)
如果指定的位置不是一個隔離項目(隔離項目是一個不可選擇,不可用滑鼠點選的項目)則傳回真。如果位置是無效的,其結果将是不确定的。在這種情況下一個ArrayIndexOutOfBoundsException(越界)異常将抛出
position 項目的索引
如果這個項目不是一個隔離項目則傳回真。
public void notifyDataSetChanged ()
通知附屬的視圖基礎資料已經改變,視圖應該自動重新整理。
public void notifyDataSetInvalidated ()
監控資料的observer不再有效
注冊一個用于adapter的observer(觀察者:監控資料發生改變時被調用)
observer 當資料發生改變時得到通知的對象
移除先前通過registerDataSetObserver(DataSetObserver)方法注冊過的observer(觀察者:監控資料發生改變的類)
observer 移除注冊的對象
本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582575,如需轉載請自行聯系原作者