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

Android 中文API (46) —— SimpleAdapter

編輯:Android開發實例

正文

  一、結構

    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。

 

  三、構造函數

public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

        構造函數

參數

       context   關聯SimpleAdapter運行著的視圖的上下文。

data        一個Map的列表。在列表中的每個條目對應列表中的一行,應該包含所有在from中指定的條目

resource              一個定義列表項目的視圖布局的資源唯一標識。布局文件將至少應包含哪些在to中定義了的名稱。

from       一個將被添加到Map上關聯每一個項目的列名稱的列表

to    應該在參數from顯示列的視圖。這些應該全是TextView。在列表中最初的N視圖是從參數from中最初的N列獲取的值。

 

  四、公共方法

 

public int getCount ()

獲取數據集中記錄總行數

 

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

獲得一個在指定位置上顯示下拉彈出數據的視圖。

參數

position         想得到項目視圖的索引

convertView 如果可能舊有的視圖重新使用。注解:在使用之前應該檢查這個視圖不是空的並且類型合適。如果轉換視圖顯示正確的數據是不可能的,這個方法能夠創建一個新的視圖

parent           視圖最終將依附的父對象

返回值

一個對應指定位置的數據的視圖。

 

public Filter getFilter ()

返回一個可以通過一種過濾模式來約束數據的過濾器。

這個方法通常被Adapter類實現。

       返回值

一個用於約束數據的過濾器

 

public abstract Object getItem (int position)

獲取數據集中指定位置上的數據項目

參數

position 在adapter中我們想得到項目的位置。

              返回值

指定位置上的數據。

 

public abstract long getItemId (int position)

獲取數據集中指定位置上的行ID。

參數

position 在adapter中我們想得到的行ID的項目的位置。

返回值

指定位置上的數據。

 

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

獲取一個顯示數據集中指定位置數據段視圖。可以手動創建視圖,或者從XML設計文件填充。當視圖從XML設計文件填充時,父視圖(如GridView,ListView等)將接受默認的設計參數,除非使用inflate(int, android.view.ViewGroup, boolean)去指定一個根視圖和防止依附於根視圖。

參數

       position 我們想要的在adapter中的數據項目的位置

convertView 如果可能舊有的視圖重新使用。注解:在使用之前應該檢查這個視圖不是空的並且類型合適。如果轉換視圖顯示正確的數據是不可能的,這個方法能夠創建一個新的視圖

parent    視圖最終將依附的父對象。

返回值

一個在指定位置上相應的數據的視圖。

 

public SimpleAdapter.ViewBinder getViewBinder ()

返回被用來綁定數據到視圖的SimpleAdapter.ViewBinder

返回值

一個ViewBinder ,如果binder不存在則返回null

參見

setViewBinder(android.widget.SimpleAdapter.ViewBinder)

 

public void setDropDownViewResource (int resource)

設置創建下拉視圖的布局資源

參數

       resource       定義下拉視圖的布局資源

參見

getDropDownView(int, android.view.View, android.view.ViewGroup)

 

public void setViewBinder (SimpleAdapter.ViewBinder viewBinder)

設置binder用於綁定數據到視圖

參數

       viewBinder    用於綁定數據到視圖的binder可以設置為null,可用於刪除存在的binder

參見

getViewBinder()

 

public void setViewImage (ImageView v, int value)

調用bindView去給ImageView設置圖像,但只有當ViewBinder不存在或者如果存在的ViewBinder無法處理綁定到一個ImageView時才調用。如果提供的數據是一個整形時,setViewImage(ImageView, String)方法將被本方法替代

參數
              v     接收圖像的ImageView

value      從數據集獲取數據到值

              參見

setViewImage(ImageView, String)

 

public void setViewImage (ImageView v, String value)

調用bindView去給ImageView設置圖像,但只有當ViewBinder不存在或者如果存在的ViewBinder無法處理綁定到一個ImageView時才調用。默認的,這個值被作為一個圖像資源來對待。如果這個值作為一個圖像的Uri來使用。如果提供的數據不是一個整形時,setViewImage(ImageView, int)方法將被本方法替代

參數

       v     接收圖像的ImageView

value      從數據集獲取數據到值

參見

setViewImage(ImageView, int)

 

public void setViewText (TextView v, String text)

調用bindView去給TextView設置文本,但只有當ViewBinder不存在或者如果存在的ViewBinder無法處理綁定到一個TextView時才調用

參數

       v     將接收文本的TextView

text 被設置到TextView的文本 

 

  五、補充

    文章精選

      簡約而不簡單——Android SimpleAdapter

      android listview組件之ArrayAdapter,SimpleAdapter

      Android用simpleAdapter來直接顯示BMP圖片(有ViewBinder用法)

    示例代碼

      

   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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved