天天看点

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

继续阅读