现在的位置: 首页 > 综合 > 正文

Android中的SimpleAdapter

2013年04月19日 ⁄ 综合 ⁄ 共 1212字 ⁄ 字号 评论关闭

一个简单的适配器,可以将静态数据映射到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的list。Data里边的每一项都和 ListView里边的每一项对应。Data里边的每一项都是一个Map类型,这个Map类里边包含了ListView每 

        一行需要的数据。
resource:就是一个布局layout,可引用系统提供的,也可以自定义。
from: 这是个名字数组,每个名字是为了在 ArrayList数组的每一个item索引Map<String,Object>的Object用的。
to   :里面是一个TextView数组。这些 TextView是以id的形式来表示的。例如:Android.R.id.text1,这个text1在layout当中是可以索引的。

使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行。HashMap的每个键值数据映射到布局文件中对应id的组件上。因为系统没有对应的布局文件可用,我们可以自己定义一个布局vlist.xml。下面做适配,new一个SimpleAdapter参数一次是:this,布局文件(vlist.xml),HashMap的 title 和 info,img。布局文件的组件id,title,info,img。布局文件的各组件分别映射到HashMap的各元素上,完成适配。

 

抱歉!评论已关闭.