前言
聲明
歡迎轉載,但請保留文章原始出處:)
正文
一、結構
public interface spinneradapter extends adapter
java.lang.object
android.widget.baseadapter
android.widget. spinneradapter
二、概述
這是一個簡單的擴充卡,可以将靜态資料映射到xml檔案中定義好的視圖。你可以指定資料支援的清單如arraylist組成的map。在arraylist中的每個條目對應list中的一行。maps包含每行資料。你可以指定一個定義了被用于顯示行的視圖xml檔案,通過關鍵字映射到指定的視圖。綁定資料到視圖分兩個階段,首先,如果一個simpleadapter.viewbinder是有效的,setviewvalue(android.view.view, object, string)将被調用。如果傳回值是真,綁定完成了。如果傳回值為假,下面的視圖将按以下順序去處理:
一個實作了checkable的視圖(例如checkbox),期望綁定值是一個布爾類型。
textview期望綁定值是一個字元串類型,通過調用setviewtext(textview, string)綁定。
imageview期望綁定值是一個資源id或者一個字元串,通過調用setviewimage(imageview, int) 或 setviewimage(imageview, string)。
如果沒有一個合适的綁定發生将會抛出illegalstateexception。
三、構造函數
構造函數
參數
context 關聯simpleadapter運作着的視圖的上下文。
data 一個map的清單。在清單中的每個條目對應清單中的一行,應該包含所有在from中指定的條目
resource 一個定義清單項目的視圖布局的資源唯一辨別。布局檔案将至少應包含哪些在to中定義了的名稱。
from 一個将被添加到map上關聯每一個項目的列名稱的清單
to 應該在參數from顯示列的視圖。這些應該全是textview。在清單中最初的n視圖是從參數from中最初的n列擷取的值。
四、公共方法
public int getcount ()
擷取資料集中記錄總行數
獲得一個在指定位置上顯示下拉彈出資料的視圖。
position 想得到項目視圖的索引
convertview 如果可能舊有的視圖重新使用。注解:在使用之前應該檢查這個視圖不是空的并且類型合适。如果轉換視圖顯示正确的資料是不可能的,這個方法能夠建立一個新的視圖
parent 視圖最終将依附的父對象
傳回值
一個對應指定位置的資料的視圖。
傳回一個可以通過一種過濾模式來限制資料的過濾器。
這個方法通常被adapter類實作。
傳回值
一個用于限制資料的過濾器
擷取資料集中指定位置上的資料項目
position 在adapter中我們想得到項目的位置。
傳回值
指定位置上的資料。
public abstract long getitemid (int position)
擷取資料集中指定位置上的行id。
position 在adapter中我們想得到的行id的項目的位置。
擷取一個顯示資料集中指定位置資料段視圖。可以手動建立視圖,或者從xml設計檔案填充。當視圖從xml設計檔案填充時,父視圖(如gridview,listview等)将接受預設的設計參數,除非使用inflate(int, android.view.viewgroup, boolean)去指定一個根視圖和防止依附于根視圖。
position 我們想要的在adapter中的資料項目的位置
parent 視圖最終将依附的父對象。
一個在指定位置上相應的資料的視圖。
傳回被用來綁定資料到視圖的<code>simpleadapter.viewbinder</code> 。
一個viewbinder ,如果binder不存在則傳回null
參見
public void setdropdownviewresource (int resource)
設定建立下拉視圖的布局資源
resource 定義下拉視圖的布局資源
設定binder用于綁定資料到視圖
viewbinder 用于綁定資料到視圖的binder可以設定為null,可用于删除存在的binder
調用bindview去給imageview設定圖像,但隻有當viewbinder不存在或者如果存在的viewbinder無法處理綁定到一個imageview時才調用。如果提供的資料是一個整形時,setviewimage(imageview, string)方法将被本方法替代
v 接收圖像的imageview
value 從資料集擷取資料到值
參見
調用bindview去給imageview設定圖像,但隻有當viewbinder不存在或者如果存在的viewbinder無法處理綁定到一個imageview時才調用。預設的,這個值被作為一個圖像資源來對待。如果這個值作為一個圖像的uri來使用。如果提供的資料不是一個整形時,setviewimage(imageview, int)方法将被本方法替代
v 接收圖像的imageview
調用bindview去給textview設定文本,但隻有當viewbinder不存在或者如果存在的viewbinder無法處理綁定到一個textview時才調用
v 将接收文本的textview
text 被設定到textview的文本
五、補充
文章精選
示例代碼

private listview lv;
private list<map<string,string>> data;
private simpleadapter sadapter;
lv = (listview)findviewbyid(r.id.listview);
data = new arraylist<map<string, object>>();
for (int i = 0; i < 10; i++) {
map<string, object> map = new hashmap<string, object>();
map.put("title", "apple");
map.put("content", "can eat");
map.put("check", true);
map.put("check1", "true");
map.put("image", r.drawable.icon);
data.add(map);
}
sadapter = new simpleadapter(getapplicationcontext(),
data,
r.layout.item,
new string[]{"title","content","check","check1","image"},
new int[]{r.id.title,r.id.content,r.id.check,r.id.check1, r.id.image});
lv.setadapter(sadapter);
結束
android2.3釋出在即,抓緊出合集,目前生成chm還有一點問題,完全通過後開始全面采用javadoc格式的api文檔,敬請期待。
轉載:http://www.cnblogs.com/over140/archive/2010/11/24/1886151.html