天天看點

Android API 中文 (53) —— BaseAdapter

前言

聲明

  歡迎轉載,但請保留文章原始出處:) 

正文

  一、結構

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 移除注冊的對象       

  四、補充

  文章連結

<a href="http://fonter.javaeye.com/blog/674971">android baseadapter 例子</a>

<a href="http://www.android123.com.cn/kaifafaq/604.html">baseadapter的bug</a>

<a href="http://disanji.net/index.php/2010/11/android-baseadapter-spinner-listview-gridview/">android中萬能的baseadapter(spinner,listview,gridview)的使用!</a>

結束

   "德羅德"為目前翻譯組較為活躍的"議員",感謝他為大家帶來精彩的譯文 :)

轉載:http://www.cnblogs.com/over140/archive/2010/12/03/1895128.html

繼續閱讀