一、ArrayAdapter的介绍以及ListView的用法:
Adapter是数据和视图之间的桥梁,数据在adapter中做处理,然后显示到视图上面。就是用来绑定数据用的。
用一个小例子来介绍一下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
class
FriendActivity
extends
Activity {
private
ListView listView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
//我们设置一个List集合,然后向里边添加几条数据
List<string> ls =
new
ArrayList<string>();
ls.add(张三);
ls.add(李四);
ls.add(王五);
//获取xml文件中listView控件
listView = (ListView)findViewById(R.id.ayyay_list_list);
//然后为listView控件调用setAdapter方法,让数据显示在界面上。
listView.setAdapter(
new
ArrayAdapter<string>(
this
,android.R.layout.simple_list_item_1,ls));
}</string></string></string>
|
使用步骤。
(1)定义一个数组来存放ListView中item的内容(如以上代码中的 ls 集合)。
(2)通过实现ArrayAdapter的构造函数来创建一个ArrayAdapter的对象。
(3)通过ListView的setAdapter()方法绑定ArrayAdapter。
其中第二步有必要说一下的是,ArrayAdapter有多个构造函数,例子中实现的是最常用的一种。
第一个参数为上下文对象,直接可以用this来代替。
第二个参数为一个包含TextView,用来填充ListView的每一行的布局资源ID(在以上代码中的:android.R.layout.simple_list_item_1是系统自带的格式,直接拿来调用了)。
第三个参数为ListView的内容。
二、对ListView对象进行监听:
常用的对ListView对象监听的有三个:
1.OnItemClickListener :监听器在点击该项目的子项时触发
2.OnTouchListener:监听器在触碰到ListView时触发
3.OnScrollListener:监听器在ListView滚动时触发
(1)、OnItemClickListener
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public
class
FriendActivity
extends
Activity {
private
ListView listView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
//我们设置一个List集合,然后向里边添加几条数据
List<string> ls =
new
ArrayList<string>();
ls.add(张三);
ls.add(李四);
ls.add(王五);
//获取xml文件中listView控件
listView = (ListView)findViewById(R.id.ayyay_list_list);
//然后为listView控件调用setAdapter方法,让数据显示在界面上。
listView.setAdapter(
new
ArrayAdapter<string>(
this
,android.R.layout.simple_list_item_1,ls));
//为listView对象进行监听:当点击子项目的时候触发
listView.setOnItemClickListener(
new
ItemClickEvent());
}
//继承OnItemClickListener,当子项目被点击的时候触发
private
final
class
ItemClickEvent
implements
OnItemClickListener{
@Override
//这里需要注意的是第三个参数arg2,这是代表单击第几个选项
public
void
onItemClick(AdapterView<!--?--> arg0, View arg1,
int
arg2,
long
arg3) {
//通过单击事件,获得单击选项的内容
String text = listView.getItemAtPosition(arg2)+;
//通过吐丝对象显示出来。
Toast.makeText(getApplicationContext(), text,
1
).show();
}
}
}</string></string></string>
|
可以看到,当单击第二项李四,下边会用吐丝对象显示一个李四