標籤:des android style blog http io color ar os
一、Adapter的介紹
An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set.
一個Adapter是AdapterView視圖與資料之間的橋樑,Adapter提供對資料的訪問,也負責為每一項資料產生一個對應的View。其作用如所示:
二、Adapter的繼承關係
有兩個adapter的體系,如下:
1、
2、
三、Adapter中的方法
在實際應用中,adapter的繼承體系應用的更為廣泛,所以,要對Adapter的方法有所瞭解
public interface Adapter { // 為了避免產生大量的View浪費記憶體,在Android中,AdapterView中的View是可回收的使用的。比如你有100項資料要顯示,而你的螢幕一次只能顯示10條資料,則 // 只產生10個View,當往下拖動要顯示第11個View時,會把第1個View的引用傳遞過去,更新裡面的資料再顯示,也就是說View可重用,只是更新視圖中的資料用於顯示新 // 的一項,如果一個視圖的檢視類型是IGNORE_ITEM_VIEW_TYPE的話,則此視圖不會被重用 static final int IGNORE_ITEM_VIEW_TYPE = AdapterView.ITEM_VIEW_TYPE_IGNORE; static final int NO_SELECTION = Integer.MIN_VALUE; // 註冊一個Observer,當Adapter所表示的資料改變時會通知它,DataSetObserver是一個抽象類別,定義了兩個方法:onChanged與onInvalidated void registerDataSetObserver(DataSetObserver observer); // 取消註冊一個Observer void unregisterDataSetObserver(DataSetObserver observer); // 所表示的資料的項數 int getCount(); // 返回指定位置的資料項目 Object getItem(int position); // 返回指定位置的資料項目的ID long getItemId(int position); // 表示所有資料項目的ID是否是穩定的,在BaseAdapter中預設返回了false,假設是不穩定的,在CursorAdapter中返回了true,Cursor中的_ID是不變的 boolean hasStableIds(); // 為每一個資料項目產生相應的視圖 View getView(int position, View convertView, ViewGroup parent); // 獲得相應位置的這圖類型 int getItemViewType(int position); // getView可以返回的View的類型數量。(在HeaderViewListAdapter中可以包含Header和Footer,getView可以返回Header、Footer及Adapter // 中的視圖,但其getViewTypeCount的實現只是調用了內部Adapter的的getViewTypeCount,忽略了Header、Footer中的View // Type,不懂。 int getViewTypeCount(); //是否為空白 boolean isEmpty(); }
轉自:http://blog.csdn.net/lonelyroamer/article/details/7525834
Android中的Adapter總結