?
このドキュメントでは、 php中國語ネットマニュアル リリース
SimpleCursorTreeAdapter
翻譯時間:2011-3-7
版本:Android 3.0 r1
結(jié)構(gòu)
繼承關(guān)系
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進(jìn)行映射。比如,你想設(shè)定要展示三列,那么當(dāng)做好綁定之后,視圖就會展示你設(shè)定好的那些列;當(dāng)然了,視圖的外觀是定義在XML文件里面的,你只需用這個類與視圖做好綁定就可以了。(譯者注:Android推薦我們盡可能的將組視圖和子視圖分離開,也就是說不要把整體定義在一個布局文件當(dāng)中。)與視圖綁定有兩個階段。第一階段:如果使用SimpleCursorTreeAdapter.ViewBinder
時,那么就會調(diào)用setViewValue(android.view.View,
android.database.Cursor, int)
方法。該方法返回true就說明綁定成功,否則返回false,這就到了第二階段,SimpleCursorAdapter內(nèi)部開始自行綁定,過程是這樣的,若綁定到TextView上,調(diào)用setViewText(TextView,
String)
;若綁定到ImageView上,調(diào)用setViewImage(ImageView,
String),
如果視圖不是TextView或ImageView則拋出IllegalStateException異常。
?
內(nèi)部類
public interface SimpleCursorTreeAdapter.ViewBinder
???????? 這個內(nèi)部接口可以在外部通過SimpleCursorTreeAdapter.ViewBinder的方式進(jìn)行 Cursor與View的綁定。
?
構(gòu)造函數(shù)
public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, int lastChildLayout, String[] childFrom, int[] childTo)
構(gòu)造函數(shù)。
?????????????????? 參數(shù)
??????????????????????????? context??? 上下文,多指ExpandableListView的上下文
??????????????????????????? cursor?????? 數(shù)據(jù)庫游標(biāo)
collapsedGroupLayout???? 布局資源文件標(biāo)識ID,其定義的是收縮時的ExpandableListView布局樣式,并且內(nèi)部至少要包含參數(shù)“groupTo”中指定的視圖ID。
expandedGroupLayout??? 布局資源文件標(biāo)識ID,其定義的是展開時的ExpandableListView布局樣式,并且內(nèi)部至少要包含參數(shù)“groupTo”中指定的視圖ID。
??????????????????????????? groupFrom?????? 列名列表,顯示ExpandableListView的組節(jié)點。
groupTo???????????? 展示參數(shù)“groupFrom”中的列,也就是說ExpandableListView中的視圖顯示的是參數(shù) “groupFrom”的列值,它們應(yīng)該都是TextView或是ImageView。
childLayout?????? 布局資源文件標(biāo)識ID,其定義的是子視圖的布局樣式 (不包括最后一個子視圖),內(nèi)部至少要包含參數(shù) “childTo”中指定的視圖ID。lastChildLayout布局資源文件標(biāo)識ID,其定義的是最后一個子視圖的布局樣式,內(nèi)部至少要包含參數(shù)“childTo”中指定的視圖ID。
lastChildLayout??????? 布局資源文件標(biāo)識ID,其定義的是最后一個子視圖的布局樣式,內(nèi)部至少要包含參數(shù)“childTo”中指定的視圖ID。lastChildLayout布局資源文件標(biāo)識ID,其定義的是最后一個子視圖的布局樣式,內(nèi)部至少要包含參數(shù)“childTo”中指定的視圖ID。
??????????????????????????? childFrom????????? 列名列表,顯示ExpandableListView的子節(jié)點。
childTo?????????????? 展示參數(shù)“childFrom ”中的列,也就是說ExpandableListView中的視圖顯示的是參數(shù) “childFrom? ”的列值,它們應(yīng)該都是TextView或是ImageView。
?
public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)
構(gòu)造函數(shù)。(譯者注:該構(gòu)造函數(shù)只是少了一個參數(shù)lastChildLayout)
???????? 參數(shù)
context??? 上下文,多指ExpandableListView的上下文
??????????????????????????? cursor?????? 數(shù)據(jù)庫游標(biāo)
collapsedGroupLayout???? 布局資源文件標(biāo)識ID,其定義的是收縮時的ExpandableListView布局樣式,并且內(nèi)部至少要包含參數(shù)“groupTo”中指定的視圖ID。
expandedGroupLayout??? 布局資源文件標(biāo)識ID,其定義的是展開時的ExpandableListView布局樣式,并且內(nèi)部至少要包含參數(shù)“groupTo”中指定的視圖ID。
??????????????????????????? groupFrom?????? 列名列表,顯示ExpandableListView的組節(jié)點。
groupTo???????????? 展示參數(shù)“groupFrom”中的列,也就是說ExpandableListView中的視圖顯示的是參數(shù) “groupFrom”的列值,它們應(yīng)該都是TextView或是ImageView。
childLayout?????? 布局資源文件標(biāo)識ID,其定義的是子視圖的布局樣式 (不包括最后一個子視圖),內(nèi)部至少要包含參數(shù) “childTo”中指定的視圖ID。lastChildLayout布局資源文件標(biāo)識ID,其定義的是最后一個子視圖的布局樣式,內(nèi)部至少要包含參數(shù)“childTo”中指定的視圖ID。
childFrom????????? 列名列表,顯示ExpandableListView的子節(jié)點。
childTo?????????????? 展示參數(shù)“childFrom ”中的列,也就是說ExpandableListView中的視圖顯示的是參數(shù) “childFrom? ”的列值,它們應(yīng)該都是TextView或是ImageView。
?
public SimpleCursorTreeAdapter (Context context, Cursor cursor, int groupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)
構(gòu)造函數(shù)。
???????? 參數(shù)
context??? 上下文,多指ExpandableListView的上下文
??????????????????????????? cursor?????? 數(shù)據(jù)庫游標(biāo)
?????????????????? groupLayout ?顯示組元素的資源文件。該資源文件定義了如何顯示組元素。該布局文件必須至少包括groupTo中所定義的View。(即groupTo中的View id數(shù)組必須都在該布局文件中找到)
??????????????????????????? groupFrom?????? 列名列表,顯示ExpandableListView的組節(jié)點。
groupTo???????????? 展示參數(shù)“groupFrom”中的列,也就是說ExpandableListView中的視圖顯示的是參數(shù) “groupFrom”的列值,它們應(yīng)該都是TextView或是ImageView。
childLayout?????? 布局資源文件標(biāo)識ID,其定義的是子視圖的布局樣式 (不包括最后一個子視圖),內(nèi)部至少要包含參數(shù) “childTo”中指定的視圖ID。lastChildLayout布局資源文件標(biāo)識ID,其定義的是最后一個子視圖的布局樣式,內(nèi)部至少要包含參數(shù)“childTo”中指定的視圖ID。
childFrom????????? 列名列表,顯示ExpandableListView的子節(jié)點。
childTo?????????????? 展示參數(shù)“childFrom ”中的列,也就是說ExpandableListView中的視圖顯示的是參數(shù) “childFrom? ”的列值,它們應(yīng)該都是TextView或是ImageView。
?
?
公共方法
public SimpleCursorAdapter.ViewBinder getViewBinder ()
???????? 返回SimpleCursorTreeAdapter.ViewBinder
引用,這個ViewBinder用來將數(shù)據(jù)綁定到 視圖上的。
返回值
??????????????????????????? 如果ViewBinder不存在,則返回null。
參考
???????? setViewBinder(android.widget.SimpleCursorTreeAdapter.ViewBinder)
?
public void setViewBinder (SimpleCursorTreeAdapter.ViewBinder viewBinder)
.??????? 設(shè)置視圖綁定器。
?????????????????? 參數(shù)
??????????????????????????? viewBinder? 視圖綁定器。可以設(shè)置為null來刪除已經(jīng)存在的綁定器。
?????????????????? 參考
???????? getViewBinder()
?
public void setViewText (TextView v, String text)
???????? 僅當(dāng)ViewBinder不存在或是當(dāng)ViewBinder不為TextView綁定時(也就是setViewValue()返回false),則這個方法會被bindView()調(diào)用,以便為TextView設(shè)置文本。可重寫適配器從數(shù)據(jù)庫中檢索過濾字符串。
?????????????????? 參數(shù)
??????????????????????????? v?????? ?? 文本控件引用
??????????????????????????? value??????為文本控件設(shè)置的文本信息(譯者注:是從Cursor獲取到的)。
?
受保護(hù)方法
protected void bindChildView (View view, Context context, Cursor cursor, boolean isExpanded)
???????? 通過參數(shù)cursor將數(shù)據(jù)綁定到已有的子視圖上。。
?????????????????? 參數(shù)
??????????????????????????? view? ?????????????? 已有視圖,返回之前調(diào)用newChildView創(chuàng)建的視圖。
??????????????????????????? context? ???????? 應(yīng)用程序上下文
??????????????????????????? cursor? ?????????? 用于獲取數(shù)據(jù)的Coursor。Coursor已經(jīng)移到正確的位置。
??????????????????????????? isLastChild? ?子元素是否處于組中的最后一個
?
protected void bindGroupView (View view, Context context, Cursor cursor, boolean isExpanded)
???????? 通過參數(shù)cursor將數(shù)據(jù)綁定到已有組視圖上。
?????????????????? 參數(shù)???????????????????????????
??????????????????????????? view? ?????????????? 已有組視圖,返回之前調(diào)用newGroupView創(chuàng)建的視圖。
??????????????????????????? context? ???????? 應(yīng)用程序上下文
??????????????????????????? cursor? ?????????? 用于獲取數(shù)據(jù)的Coursor。Coursor已經(jīng)移到正確的位置。
??????????????????????????? isExpanded? ?組視圖是否呈展開狀態(tài)
?
protected void setViewImage (ImageView v, String value)
這個方法會被bindView()調(diào)用,以便為ImageView設(shè)置圖片。默認(rèn)情況下,參數(shù)value作為圖片資源ID來看待,否則會視為圖片的Uri。?? 另外還可以通過過濾器來獲得更靈活的設(shè)置。
?????????????????? 參數(shù)
??????????????????????????? v?????? ?? 圖片控件引用
??????????????????????????? value? 圖片資源ID,是從Cursor獲取到的。
?
補充
???????? 文章精選
?????????????????? android播放器(music player)源碼分析2