Android ListView详解(二)
来源:互联网 发布:java反射动态执行方法 编辑:程序博客网 时间:2024/05/04 16:23
本文转自: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"
?>
02
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
03
android:orientation
=
"horizontal"
android:layout_width
=
"fill_parent"
04
android:layout_height
=
"fill_parent"
>
05
06
07
<
ImageView
android:id
=
"@+id/img"
08
android:layout_width
=
"wrap_content"
09
android:layout_height
=
"wrap_content"
10
android:layout_margin
=
"5px"
/>
11
12
<
LinearLayout
android:orientation
=
"vertical"
13
android:layout_width
=
"wrap_content"
14
android:layout_height
=
"wrap_content"
>
15
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"
/>
26
27
</
LinearLayout
>
28
29
30
</
LinearLayout
>
下面是实现代码:
01
/**
02
* @author allin
03
*
04
*/
05
public
class
MyListView3
extends
ListActivity {
06
07
08
// private List<String> data = new ArrayList<String>();
09
@Override
10
public
void
onCreate(Bundle savedInstanceState) {
11
super
.onCreate(savedInstanceState);
12
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);
17
}
18
19
private
List<Map<String, Object>> getData() {
20
List<Map<String, Object>> list =
new
ArrayList<Map<String, Object>>();
21
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);
26
list.add(map);
27
28
map =
new
HashMap<String, Object>();
29
map.put(
"title"
,
"G2"
);
30
map.put(
"info"
,
"google 2"
);
31
map.put(
"img"
, R.drawable.i2);
32
list.add(map);
33
34
map =
new
HashMap<String, Object>();
35
map.put(
"title"
,
"G3"
);
36
map.put(
"info"
,
"google 3"
);
37
map.put(
"img"
, R.drawable.i3);
38
list.add(map);
39
40
return
list;
41
}
42
}
使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行。HashMap的每个键值数据映射到布局文件中对应id的组件上。因为系统没有对应的布局文件可用,我们可以自己定义一个布局vlist.xml。下面做适配,new一个SimpleAdapter参数一次是:this,布局文件(vlist.xml),HashMap的 title 和 info,img。布局文件的组件id,title,info,img。布局文件的各组件分别映射到HashMap的各元素上,完成适配。
运行效果如下图:
- Android ListView详解(二)
- Android ListView详解(二)
- ListView详解(二)
- ListView 详解(二)
- Android中Listview(二)--圆角listview
- Android ListView入门(二)
- android 之 listview (二)
- Android控件ListView(二)
- Android ListView详解(一)
- Android ListView详解(三)
- Android ListView详解(一)
- C#ListView详解(二)
- Android Widget 开发详解(二) +支持listView滑动的widget
- Android Widget 开发详解(二) +支持listView滑动的widget
- android listview系列之初步接触listview(二)
- Android基本控件之ListView(二)<ListView优化>
- Android常用控件(二)【ProgressBar、ListView】
- Android 新手listview小示例(二)
- Firefox:如何设置Firefox为默认浏览器
- Hello World
- 常用sql注入语句
- CSS3&HTML5初探
- Flex 读取XML文件
- Android ListView详解(二)
- CSS3圆角的实现教程
- box-shadow实现曲线投影效果
- Flex 中子窗口通过事件刷新父窗口中的数据(转)
- Css3弹性盒模型
- Android ListView详解(三)
- 你需要了解的CSS3技巧
- 如何实现,根据屏幕的拖动方向,进行前后的滚屏
- GObject Introspection(GI)介绍