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

SimpleAdapter 和 ListView

2013年01月27日 ⁄ 综合 ⁄ 共 1559字 ⁄ 字号 评论关闭

参考:http://www.bianceng.cn/OS/extra/201106/27059.htm

一、SimpleAdapter

SimpleAdapter是一个简单的适配器,可以将静态数据映射到XML文件中定义 好的视图。你可以指定数据支持的列表如ArrayList组成的Map。在ArrayList中 的每个条目对应List中的一行。Maps包含每行数据。你可以指定一个定义了被用 于显示行的视图XML文件,通过关键字映射到指定的视图。

构造函数

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列获取的值。

一个SimlpleAdapter是这样工作的。假设将SimpleAdapter用于ListView。那 么ListView的每一个列表项就是 resource参数值指定的布局。而data参数就是 要加载到ListView中的数据。我们先看每一个列表项,假设列表项所对应的布局 文件中包含了两个组件:TextView和EditText,id分别为textview和edittext。 那么在加载列表项时,需要通过组件的id和data参数中 List元素中的Map对象对 应。因此,from参数Map对象的key,而to表示组件的id,例如,本例中的参数值
为from = new String[]{"userId", "userName"},to = new int[]{R.id.userId,R.id.userName}。意思就是将Map对象中key为userId 的value绑定到 R.id.userId上,userName也类似。现在来看data参数,一个 ListView由多个列表项组成。每一个列表项由一个Map对象提供数据,而多个列 表项则由List对象提供多个 Map对象。

二、ListView

在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容 ,并且能够根据数据的长度自适应显示。

列表的显示需要三个元素:

1.ListVeiw 用来展示列表的View。

2.适配器 用来把数据映射到ListView上的中介。

3.数据 具体的将被映射的字符串,图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和 SimpleCursorAdapter。其中以ArrayAdapter最为简单,只能展示一行字。 SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter 可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以 列表的形式展示出来。SimpleAdapter继承自AdapterView。我们可以通过 setOnItemClickListener()方法给ListView添加监听器,当用户点击某一个列表
项中执行相应的操作。在监听器中需要复写public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id)方法。

抱歉!评论已关闭.