本文转自:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html
如欲获得更多更好的信息,请访问原文地址,这里仅作记载
SimpleAdapter
simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)等等。下面的代码都直接继承了ListActivity,ListActivity和普通的Activity没有太大的差别,不同就是对显示ListView做了许多优化,方面显示而已。
下面的程序是实现一个带有图片的类表。
首先需要定义好一个用来显示每一个列内容的xml
vlist.xml
01
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
03
android:orientation
=
"horizontal"
android:layout_width
=
"fill_parent"
04
android:layout_height
=
"fill_parent"
>
07
<
ImageView
android:id
=
"@+id/img"
08
android:layout_width
=
"wrap_content"
09
android:layout_height
=
"wrap_content"
10
android:layout_margin
=
"5px"
/>
12
<
LinearLayout
android:orientation
=
"vertical"
13
android:layout_width
=
"wrap_content"
14
android:layout_height
=
"wrap_content"
>
16
<
TextView
android:id
=
"@+id/title"
17
android:layout_width
=
"wrap_content"
18
android:layout_height
=
"wrap_content"
19
android:textColor
=
"#FFFFFFFF"
20
android:textSize
=
"22px"
/>
21
<
TextView
android:id
=
"@+id/info"
22
android:layout_width
=
"wrap_content"
23
android:layout_height
=
"wrap_content"
24
android:textColor
=
"#FFFFFFFF"
25
android:textSize
=
"13px"
/>
下面是实现代码:
05
public
class
MyListView3
extends
ListActivity {
10
public
void
onCreate(Bundle savedInstanceState) {
11
super
.onCreate(savedInstanceState);
13
SimpleAdapter adapter =
new
SimpleAdapter(
this
,getData(),R.layout.vlist,
14
new
String[]{
"title"
,
"info"
,
"img"
},
15
new
int
[]{R.id.title,R.id.info,R.id.img});
16
setListAdapter(adapter);
19
private
List<Map<String, Object>> getData() {
20
List<Map<String, Object>> list =
new
ArrayList<Map<String, Object>>();
22
Map<String, Object> map =
new
HashMap<String, Object>();
23
map.put(
"title"
,
"G1"
);
24
map.put(
"info"
,
"google 1"
);
25
map.put(
"img"
, R.drawable.i1);
28
map =
new
HashMap<String, Object>();
29
map.put(
"title"
,
"G2"
);
30
map.put(
"info"
,
"google 2"
);
31
map.put(
"img"
, R.drawable.i2);
34
map =
new
HashMap<String, Object>();
35
map.put(
"title"
,
"G3"
);
36
map.put(
"info"
,
"google 3"
);
37
map.put(
"img"
, R.drawable.i3);
使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行。HashMap的每个键值数据映射到布局文件中对应id的组件上。因为系统没有对应的布局文件可用,我们可以自己定义一个布局vlist.xml。下面做适配,new一个SimpleAdapter参数一次是:this,布局文件(vlist.xml),HashMap的 title 和 info,img。布局文件的组件id,title,info,img。布局文件的各组件分别映射到HashMap的各元素上,完成适配。
运行效果如下图: