天天看點

Android 中文 API (102)—— CursorAdapter

一、結構

public abstract class CusrorAdapter extends BaseAdpater implements Filterable 

java.lang.Object

android.widget.BaseAdapter

         android.widget.CursorAdapter 

直接子類

      ResourceCursorAdapter

間接子類

SimpleCursorAdapter

二、概述

三、構造函數

    public CusorAdapter(Context context,Cursor c)   

           構造函數。每當資料庫的資料發生改變時,擴充卡将調用requery()重新查詢以顯示最新的資料。

             參數

       context        應用程式上下文。

  c                 用來擷取資料的遊标(Coursor) 

    public CusorAdapter(Context context,Cursor c, boolean autoRequery)       

  構造函數。每當資料庫的資料發生改變時,擴充卡将調用requery()重新查詢以顯示最新的資料。

  c                 用來擷取資料的Coursor

                      autoRequry     設定為true時,每當資料庫的資料發生改變時,擴充卡将調用requery()重新查詢以顯示最新的資料。

四、公共方法

  public abstract void bindView (View view, Context context, Cursor cursor)

  重用一個已有的view,使其顯示目前cursor所指向的資料。

  參數

                   view                已存在的視圖, 傳回之前newView方法建立的視圖。

                   context          應用程式上下文

                   cursor               用于擷取資料的Coursor。Coursor已經移到正确的位置。   

  public void changeCursor (Cursor cursor)

           更改底層的遊标為新傳入的遊标。如果遊标已經存在則先關閉這個已存在的遊标。

  參數                  

                   cursor               新Cursor。

  public CharSequence convertToString (Cursor cursor)

           将cursor轉換成CharSequence。子類應該重寫這個方法并轉換它們的結果。這個方法的預設實作是:當cursor為空時傳回一個空串,否則直接傳回調用cursor的toString()方法。

  參數        

                   cursor               将cursor轉換成CharSequence對象。

           傳回值

             傳回表示CharSequence的值。 

  public int getCount ()

         (譯者注:擷取擴充卡中資料的總行數。)

             參見

  public Cursor getCursor ()

           傳回目前擴充卡綁定的Cursor對象。

  傳回值

            Cursor對象。 

  public View getDropDownView (int position, View convertView, ViewGroup parent)

  擷取下拉清單選項指定位置的視圖對象

           position  視圖(View)對象的行索引。

           convertView       重用已有的視圖(View)對象。備注:在使用前你應該檢查一下這個視圖對象是否非空并且這個對象的類型是否合适。由此引伸出,如果該對象不能被轉換并顯示正确的資料,這個方法内部就會重新建立一個合适的視圖(View)對象。

           parent  不管是轉換後的還是重新建立的視圖(View)對象,始終都會依附于parent對象上。

  傳回值    

                   傳回視圖(View)對象,該對象顯示資料集指定位置上的資料。

  public Filter getFilter ()

  傳回一個可以通過一種過濾模式來限制資料的過濾器。

  這個方法通常在Adapter類實作。

                   一個用于限制資料的過濾器

  public FilterQueryProvider getFilterQueryProvider ()

  傳回一個提供過濾的查詢過濾器。若過濾器為null,則不再過濾。

                   傳回目前過濾器對象,如果不存在傳回null。

                 參見

  public Object getItem (int position)

  (譯者注:擷取資料集中指定位置上的資料項目)

                  參見

  public long getItemId (int position)

         (譯者注:擷取資料集中的指定位置上的行id。)

  public View getView (int position, View convertView, ViewGroup parent)

  (譯者注:擷取一個顯示資料集中指定位置資料段視圖。可以手動建立視圖,或者從XML設計檔案填充。當視圖從XML設計檔案填充時,父視圖(如GridView,ListView等)将接受預設的設計參數,除非使用inflate(int, android.view.ViewGroup, boolean)去指定一個根視圖和防止依附于根視圖。)

        參見

  public boolean hasStableIds ()

無論項ID代表的基礎資料的是否變化都保持不變。

      傳回值

  如果為TRUE,意味着相同的ID始終引用相同的對象。 

  public View newDropDownView (Context context, Cursor cursor, ViewGroup parent)

  生成一個新的下拉視圖來儲存cursor指向的資料

           參數

             context  應用程式全局資訊接口(應用上下文)

  cursor  擷取資料的遊标,它已經移動到正确的位置

  parent 與新視圖相關聯的上級視圖

  新建立的視圖。 

  public abstract View newView (Context context, Cursor cursor, ViewGroup parent)

  建立一個視圖來儲存cursor指向的資料

             context  應用程式全局資訊接口(應用上下文)

                   新建立的視圖。 

  public Cursor runQueryOnBackgroundThread (CharSequence constraint)

        參數

              constraint 該查詢必須被過濾的限制。

  傳回含有新的查詢結果的Cursor。

  參考

  public void setFilterQueryProvider (FilterQueryProvider filterQueryProvider)

       參數

  filterQueryProvider  過濾器對象,設定為null時,就相當于移除了該過濾器。

                參考

五、受保護方法

  protected void init (Context context, Cursor c, boolean autoRequery)

  (譯者注:供構造函數使用初始化相關參數) 

  protected void onContentChanged ()

  當cursor對象上的ContentObserver接收到改變的通知時就會調用該方法,其預設實作提供了自動重新查詢方式,但可以被子類重寫。

六、補充 

       文章精選