正文
一、結構
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);
本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582592,如需轉載請自行聯系原作者