Android学习四、Android中的Adapter
一、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.
一個(gè)Adapter是AdapterView視圖與數(shù)據(jù)之間的橋梁,Adapter提供對(duì)數(shù)據(jù)的訪問(wèn),也負(fù)責(zé)為每一項(xiàng)數(shù)據(jù)產(chǎn)生一個(gè)相應(yīng)的View。其作用例如以下圖所看到的:
二、Adapter的繼承關(guān)系
有兩個(gè)adapter的體系,例如以下:
1、
2、
三、Adapter中的方法
在實(shí)際應(yīng)用中,adapter的繼承體系應(yīng)用的更為廣泛,所以,要對(duì)Adapter的方法有所了解
public interface Adapter {// 為了避免產(chǎn)生大量的View浪費(fèi)內(nèi)存,在Android中,AdapterView中的View是可回收的使用的。比方你有100項(xiàng)數(shù)據(jù)要顯示,而你的屏幕一次僅僅能顯示10條數(shù)據(jù),則// 僅僅產(chǎn)生10個(gè)View,當(dāng)往下拖動(dòng)要顯示第11個(gè)View時(shí),會(huì)把第1個(gè)View的引用傳遞過(guò)去,更新里面的數(shù)據(jù)再顯示,也就是說(shuō)View可重用,僅僅是更新視圖中的數(shù)據(jù)用于顯示新// 的一項(xiàng),如果一個(gè)視圖的視圖類型是IGNORE_ITEM_VIEW_TYPE的話,則此視圖不會(huì)被重用static final int IGNORE_ITEM_VIEW_TYPE = AdapterView.ITEM_VIEW_TYPE_IGNORE;static final int NO_SELECTION = Integer.MIN_VALUE;// 注冊(cè)一個(gè)Observer,當(dāng)Adapter所表示的數(shù)據(jù)改變時(shí)會(huì)通知它,DataSetObserver是一個(gè)抽象類,定義了兩個(gè)方法:onChanged與onInvalidatedvoid registerDataSetObserver(DataSetObserver observer);// 取消注冊(cè)一個(gè)Observervoid unregisterDataSetObserver(DataSetObserver observer);// 所表示的數(shù)據(jù)的項(xiàng)數(shù)int getCount();// 返回指定位置的數(shù)據(jù)項(xiàng)Object getItem(int position);// 返回指定位置的數(shù)據(jù)項(xiàng)的IDlong getItemId(int position);// 表示全部數(shù)據(jù)項(xiàng)的ID是否是穩(wěn)定的,在BaseAdapter中默認(rèn)返回了false,如果是不穩(wěn)定的,在CursorAdapter中返回了true,Cursor中的_ID是不變的boolean hasStableIds();// 為每個(gè)數(shù)據(jù)項(xiàng)產(chǎn)生對(duì)應(yīng)的視圖View getView(int position, View convertView, ViewGroup parent);// 獲得對(duì)應(yīng)位置的這圖類型int getItemViewType(int position);// getView能夠返回的View的類型數(shù)量。(在HeaderViewListAdapter中能夠包括Header和Footer,getView能夠返回Header、Footer及Adapter// 中的視圖,但其getViewTypeCount的實(shí)現(xiàn)僅僅是調(diào)用了內(nèi)部Adapter的的getViewTypeCount,忽略了Header、Footer中的View// Type,不懂。int getViewTypeCount();//是否為空boolean isEmpty(); }轉(zhuǎn)載于:https://www.cnblogs.com/mengfanrong/p/4265213.html
總結(jié)
以上是生活随笔為你收集整理的Android学习四、Android中的Adapter的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vue 扩展程序
- 下一篇: 写一个Android输入法01——最简步