Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android中文API (109) —— SimpleCursorTreeAdapter

Android中文API (109) —— SimpleCursorTreeAdapter

編輯:Android開發實例

前言

  本章內容是android.widget.SimpleCursorTreeAdapter,版本為Android 3.0 r1,翻譯來自"深夜未眠",含示例代碼。
 

 

 

正文

  一、結構

 

public abstract class SimpleCusrorTreeAdapter extends     

                                            ResourceCusorTreeAdpater

java.lang.Object

android.widget.BaseExpandableListAdapter

         android.widget.CursorTreeAdapter

                            android.widget.ResourceCusorTreeAdapter

                                     android.widget.SimpleCursorTreeAdapter

 

 

  二、概述

 

  這是一個用起來很方便的適配器類,它主要將Cursor與在XML文件中定義的TextView或ImageView進行映射。比如,你想設定要展示三列,那麼當做好綁定之後,視圖就會展示你設定好的那些列;當然了,視圖的外觀是定義在XML文件裡面的,你只需用這個類與視圖做好綁定就可以了。(譯者注:Android推薦我們盡可能的將組視圖和子視圖分離開,也就是說不要把整體定義在一個布局文件當中。)與視圖綁定有兩個階段。第一階段:如果使用SimpleCursorTreeAdapter.ViewBinder時,那麼就會調用setViewValue(android.view.View, android.database.Cursor, int)方法。該方法返回true就說明綁定成功,否則返回false,這就到了第二階段,SimpleCursorAdapter內部開始自行綁定,過程是這樣的,若綁定到TextView上,調用setViewText(TextView, String);若綁定到ImageView上,調用setViewImage(ImageView, String),如果視圖不是TextView或ImageView則拋出IllegalStateException異常。

 

 

  三、內部類

 

    public interface SimpleCursorTreeAdapter.ViewBinder

    這個內部接口可以在外部通過SimpleCursorTreeAdapter.ViewBinder的方式進行 Cursor與View的綁定。

 

 

  四、構造函數

 

  public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, int lastChildLayout, String[] childFrom, int[] childTo)

  構造函數。

                  參數

                            context    上下文,多指ExpandableListView的上下文

                            cursor       數據庫游標

    collapsedGroupLayout     布局資源文件標識ID,其定義的是收縮時的ExpandableListView布局樣式,並且內部至少要包含參數“groupTo”中指定的視圖ID。

    expandedGroupLayout    布局資源文件標識ID,其定義的是展開時的ExpandableListView布局樣式,並且內部至少要包含參數“groupTo”中指定的視圖ID。

                            groupFrom       列名列表,顯示ExpandableListView的組節點。

    groupTo             展示參數“groupFrom”中的列,也就是說ExpandableListView中的視圖顯示的是參數 “groupFrom”的列值,它們應該都是TextView或是ImageView。

    childLayout       布局資源文件標識ID,其定義的是子視圖的布局樣式 (不包括最後一個子視圖),內部至少要包含參數 “childTo”中指定的視圖ID。lastChildLayout布局資源文件標識ID,其定義的是最後一個子視圖的布局樣式,內部至少要包含參數“childTo”中指定的視圖ID。

    lastChildLayout      布局資源文件標識ID,其定義的是最後一個子視圖的布局樣式,內部至少要包含參數“childTo”中指定的視圖ID。lastChildLayout布局資源文件標識ID,其定義的是最後一個子視圖的布局樣式,內部至少要包含參數“childTo”中指定的視圖ID。

                            childFrom          列名列表,顯示ExpandableListView的子節點。

    childTo             展示參數“childFrom ”中的列,也就是說ExpandableListView中的視圖顯示的是參數 “childFrom ”的列值,它們應該都是TextView或是ImageView。

 

  public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)

  構造函數。(譯者注:該構造函數只是少了一個參數lastChildLayout)

        參數

  context    上下文,多指ExpandableListView的上下文

                       cursor       數據庫游標

  collapsedGroupLayout     布局資源文件標識ID,其定義的是收縮時的ExpandableListView布局樣式,並且內部至少要包含參數“groupTo”中指定的視圖ID。

  expandedGroupLayout    布局資源文件標識ID,其定義的是展開時的ExpandableListView布局樣式,並且內部至少要包含參數“groupTo”中指定的視圖ID。

                            groupFrom       列名列表,顯示ExpandableListView的組節點。

  groupTo             展示參數“groupFrom”中的列,也就是說ExpandableListView中的視圖顯示的是參數 “groupFrom”的列值,它們應該都是TextView或是ImageView。

  childLayout       布局資源文件標識ID,其定義的是子視圖的布局樣式 (不包括最後一個子視圖),內部至少要包含參數 “childTo”中指定的視圖ID。lastChildLayout布局資源文件標識ID,其定義的是最後一個子視圖的布局樣式,內部至少要包含參數“childTo”中指定的視圖ID。

  childFrom          列名列表,顯示ExpandableListView的子節點。

  childTo             展示參數“childFrom ”中的列,也就是說ExpandableListView中的視圖顯示的是參數 “childFrom ”的列值,它們應該都是TextView或是ImageView。

 

  public SimpleCursorTreeAdapter (Context context, Cursor cursor, int groupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)

  構造函數。

        參數

  context    上下文,多指ExpandableListView的上下文

                       cursor       數據庫游標

                  groupLayout  顯示組元素的資源文件。該資源文件定義了如何顯示組元素。該布局文件必須至少包括groupTo中所定義的View。(即groupTo中的View id數組必須都在該布局文件中找到)

                       groupFrom       列名列表,顯示ExpandableListView的組節點。

  groupTo             展示參數“groupFrom”中的列,也就是說ExpandableListView中的視圖顯示的是參數 “groupFrom”的列值,它們應該都是TextView或是ImageView。

  childLayout       布局資源文件標識ID,其定義的是子視圖的布局樣式 (不包括最後一個子視圖),內部至少要包含參數 “childTo”中指定的視圖ID。lastChildLayout布局資源文件標識ID,其定義的是最後一個子視圖的布局樣式,內部至少要包含參數“childTo”中指定的視圖ID。

  childFrom          列名列表,顯示ExpandableListView的子節點。

        childTo               展示參數“childFrom ”中的列,也就是說ExpandableListView中的視圖顯示的是參數 “childFrom ”的列值,它們應該都是TextView或是ImageView。

 

 

  五、公共方法

 

  public SimpleCursorAdapter.ViewBinder getViewBinder ()

           返回SimpleCursorTreeAdapter.ViewBinder引用,這個ViewBinder用來將數據綁定到 視圖上的。

  返回值

                   如果ViewBinder不存在,則返回null。

  參考

           setViewBinder(android.widget.SimpleCursorTreeAdapter.ViewBinder)

 

  public void setViewBinder (SimpleCursorTreeAdapter.ViewBinder viewBinder)

.         設置視圖綁定器。

            參數

                 viewBinder 視圖綁定器。可以設置為null來刪除已經存在的綁定器。

               參考

         getViewBinder()

 

  public void setViewText (TextView v, String text)

          僅當ViewBinder不存在或是當ViewBinder不為TextView綁定時(也就是setViewValue()返回false),則這個方法會被bindView()調用,以便為TextView設置文本。可重寫適配器從數據庫中檢索過濾字符串。

             參數

                   v          文本控件引用

                   value      為文本控件設置的文本信息(譯者注:是從Cursor獲取到的)。

 

 

  六、受保護方法

 

  protected void bindChildView (View view, Context context, Cursor cursor, boolean isExpanded)

           通過參數cursor將數據綁定到已有的子視圖上。。

                   參數

                            view                已有視圖,返回之前調用newChildView創建的視圖。

                            context          應用程序上下文

                            cursor            用於獲取數據的Coursor。Coursor已經移到正確的位置。

                            isLastChild  子元素是否處於組中的最後一個

 

  protected void bindGroupView (View view, Context context, Cursor cursor, boolean isExpanded)

           通過參數cursor將數據綁定到已有組視圖上。

                   參數                           

                            view                已有組視圖,返回之前調用newGroupView創建的視圖。

                            context          應用程序上下文

                            cursor            用於獲取數據的Coursor。Coursor已經移到正確的位置。

                            isExpanded  組視圖是否呈展開狀態

 

  protected void setViewImage (ImageView v, String value)

  這個方法會被bindView()調用,以便為ImageView設置圖片。默認情況下,參數value作為圖片資源ID來看待,否則會視為圖片的Uri。   另外還可以通過過濾器來獲得更靈活的設置。

                   參數

                            v          圖片控件引用

                            value 圖片資源ID,是從Cursor獲取到的。

 

 

  七、補充
 

    文章精選

      android播放器(music player)源碼分析2

    示例代碼

      SimpleCursorTreeAdapter(深夜未眠).rar

 

 

 

 

 

SimpleCursorTreeAdapter.ViewBinder

譯者署名: 深夜未眠

譯者鏈接:http://chris1012f.javaeye.com/

翻譯時間:2011-3-3

版本:Android 3.0 r1

結構

繼承關系

public static interface SimpleCusrorTreeAdapter.ViewBinder

 

java.lang.Object

android.widget.SimpleCursorTreeAdapter.ViewBinder

 

類概述

這個內部接口可以在外部通過SimpleCursorTreeAdapter.ViewBinder的方式進行 Cursor與View的綁定。Android推薦我們采用這種方式進行綁定操作,而不是沿用SimpleCursorTreeAdapter內部的方式。

參見

       setViewImage(ImageView, String)

     setViewText(TextView, String)

 

公共方法

public abstract boolean setViewValue (View view, Cursor cursor, int columnIndex)

  將指定的列數據綁定到指定的視圖上。當ViewBinder處理綁定時,這個方法必須返回true;否則SimpleAdapter將嘗試通過其內部默認的方法綁定數據。

                   參數

                            view                         被綁定的視圖。

                            cursor                      數據庫游標,綁定數據從它這裡獲取

                            columnIndex          列位置,能夠在數據庫游標中尋找到。

                   返回值

                                返回true意味著數據與視圖已經綁定上,否則為未綁定上。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved