Android中的Adapter總結

來源:互聯網
上載者:User

標籤: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總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.