天天看點

Android 中文API (46) —— SimpleAdapter

前言

聲明

  歡迎轉載,但請保留文章原始出處:) 

正文

  一、結構

    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的文本 

  五、補充

    文章精選

    示例代碼

      

Android 中文API (46) —— SimpleAdapter
Android 中文API (46) —— SimpleAdapter

   private listview lv;

    private list&lt;map&lt;string,string&gt;&gt; data;

    private simpleadapter sadapter;

lv = (listview)findviewbyid(r.id.listview);     

data = new arraylist&lt;map&lt;string, object&gt;&gt;();

    for (int i = 0; i &lt; 10; i++) {

            map&lt;string, object&gt; map = new hashmap&lt;string, object&gt;();

            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);

Android 中文API (46) —— SimpleAdapter

結束

  android2.3釋出在即,抓緊出合集,目前生成chm還有一點問題,完全通過後開始全面采用javadoc格式的api文檔,敬請期待。

轉載:http://www.cnblogs.com/over140/archive/2010/11/24/1886151.html

繼續閱讀