?
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
BaseAdapter
翻譯時(shí)間:2010-11-03
版本:Android 2.2 r1
?
結(jié)構(gòu)
繼承關(guān)系
public abstract class BaseAdapter
extends Object implements ListAdapter SpinnerAdapter
????????
java.lang.Object
android.widget.BaseAdapter
?
子類及間接子類
直接子類
???????? ArrayAdapter<T>, CursorAdapter, SimpleAdapter
間接子類
ResourceCursorAdapter, SimpleCursorAdapter
類概述
用于ListView(實(shí)現(xiàn)指定的ListAdapter接口)和Spinner(實(shí)現(xiàn)指定的SpinnerAdapter接口)的共同實(shí)現(xiàn)一個(gè)公共基類適配器。
?
公共方法
public abstract boolean areAllItemsEnabled ()
在ListAdapter中所有的項(xiàng)目都是可用的?如果是,則代表所有的項(xiàng)目都是可選擇,可用鼠標(biāo)點(diǎn)擊的。
返回值
如果所有項(xiàng)目是可用的返回真
?
public abstract View getDropDownView (int position, View convertView, ViewGroup parent)
獲得一個(gè)在指定位置上顯示下拉彈出數(shù)據(jù)的視圖。
參數(shù)
?????? position? 想得到項(xiàng)目視圖的索引
?????? convertView?? 如果可能舊有的視圖重新使用。注解:在使用之前應(yīng)該檢查這個(gè)視圖不是空的并且類型合適。如果轉(zhuǎn)換視圖顯示正確的數(shù)據(jù)是不可能的,這個(gè)方法能夠創(chuàng)建一個(gè)新的視圖
parent???? 視圖最終將依附的父對(duì)象。
返回值
一個(gè)對(duì)應(yīng)指定位置的數(shù)據(jù)的視圖。
?
public int getItemViewType (int position)
獲取通過getView為指定項(xiàng)目創(chuàng)建的視圖的類型。
?????? 參數(shù)
????????????? position? 在adapter數(shù)據(jù)里我們想知道視圖類型的項(xiàng)目的位置
?????? 返回值
????????????? 一個(gè)整形的視圖類型的描述。如果一個(gè)視圖通過getView(int, View, ViewGroup)方法轉(zhuǎn)換成另一個(gè)視圖,則兩個(gè)視圖將共享同一類型。注意:整形必須在0和getViewTypeCount()– 1之間。IGNORE_ITEM_VIEW_TYPE也可以返回。
?
public int getViewTypeCount ()
返回通過getView(int, View, ViewGroup))創(chuàng)建的視圖的類型數(shù)量。每一個(gè)類型表示一組通過getView(int, View, ViewGroup)方法轉(zhuǎn)換過的視圖。如果adapter針對(duì)所有項(xiàng)目返回相同的視圖類型,這個(gè)方法返回1。
這個(gè)方法僅僅當(dāng)adapter設(shè)置在AdapterView時(shí)調(diào)用。
?????? 返回值
通過這個(gè)adapter創(chuàng)建的視圖類型的數(shù)量
?
public boolean hasStableIds ()
表明是否項(xiàng)目ID時(shí)對(duì)基礎(chǔ)數(shù)據(jù)的變化保持穩(wěn)定的。
?????? 返回值
如果相同的ID指相同的對(duì)象,返回真
?
public boolean isEmpty ()
adapter數(shù)據(jù)項(xiàng)是否等于零
?
public boolean isEnabled (int position)
如果指定的位置不是一個(gè)隔離項(xiàng)目(隔離項(xiàng)目是一個(gè)不可選擇,不可用鼠標(biāo)點(diǎn)擊的項(xiàng)目)則返回真。如果位置是無(wú)效的,其結(jié)果將是不確定的。在這種情況下一個(gè)ArrayIndexOutOfBoundsException(越界)異常將拋出
?????? 參數(shù)
????????????? position? 項(xiàng)目的索引
?????? 返回值
如果這個(gè)項(xiàng)目不是一個(gè)隔離項(xiàng)目則返回真。
?
public void notifyDataSetChanged ()
通知附屬的視圖基礎(chǔ)數(shù)據(jù)已經(jīng)改變,視圖應(yīng)該自動(dòng)刷新。
?
public void notifyDataSetInvalidated ()
監(jiān)控?cái)?shù)據(jù)的observer不再有效
?
public void registerDataSetObserver (DataSetObserver observer)
注冊(cè)一個(gè)用于adapter的observer(觀察者:監(jiān)控?cái)?shù)據(jù)發(fā)生改變時(shí)被調(diào)用)
?????? 參數(shù)
????????????? observer 當(dāng)數(shù)據(jù)發(fā)生改變時(shí)得到通知的對(duì)象
?
public void unregisterDataSetObserver (DataSetObserver observer)
移除先前通過registerDataSetObserver(DataSetObserver)方法注冊(cè)過的observer(觀察者:監(jiān)控?cái)?shù)據(jù)發(fā)生改變的類)
參數(shù)
?????? observer? 移除注冊(cè)的對(duì)象
?
補(bǔ)充
文章鏈接
Android BaseAdapter 例子
BaseAdapter的Bug
Android中萬(wàn)能的BaseAdapter(Spinner,ListView,GridView)的使用!
?