在Android中ListView的使用较为复杂一点,也就是配置其
Adapter,Adapter有几种,有ArrayAdapter,SimpleAdapter等,首先要生成一个ListView(当然可以使用
ListActivity,此Activity整合了ListView)然后用Adapter来设定ListView的显示数据及布局方式,然后再来响应
OnItemClick事件,或者在ListActivity改写onListItemClick响应事件函数。看如下代码演示了使用
ListActivity:
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.Map;
import
android.app.ListActivity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.ListView;
import
android.widget.SimpleAdapter;
public
class
Test
extends
ListActivity{
@Override
protected
void
onListItemClick(ListViewl,Viewv,
int
position,
long
id){
//
TODOAuto-generatedmethodstub
super
.onListItemClick(l,v,position,id);
this
.setTitle(
this
.mModelData.get(position).get(
"
type
"
).toString());
}
SimpleAdapteradapter
=
null
;
private
ArrayList
<
Map
<
String,Object
>>
mModelData
=
null
;
/**
Calledwhentheactivityisfirstcreated.
*/
@Override
public
void
onCreate(BundlesavedInstanceState){
super
.onCreate(savedInstanceState);
initModelData();
adapter
=
new
SimpleAdapter(
this
,mModelData,android.R.layout.two_line_list_item,
new
String[]{
"
name
"
},
new
int
[]{android.R.id.text1});
this
.setListAdapter(adapter);
//
setContentView(R.layout.main);
}
public
void
initModelData()
{
mModelData
=
new
ArrayList
<
Map
<
String,Object
>>
();
Map
<
String,Object
>
item
=
new
HashMap
<
String,Object
>
();
item.put(
"
name
"
,
"
Linux
"
);item.put(
"
type
"
,
"
OS
"
);
mModelData.add(item);
Map
<
String,Object
>
item2
=
new
HashMap
<
String,Object
>
();
item2.put(
"
name
"
,
"
Android
"
);item2.put(
"
type
"
,
"
Platform
"
);
mModelData.add(item2);
Map
<
String,Object
>
item3
=
new
HashMap
<
String,Object
>
();
item3.put(
"
name
"
,
"
Tomato
"
);item3.put(
"
type
"
,
"
Fruit
"
);
mModelData.add(item3);
}
}
下面代码显示了,使用ListView
+
Activity:
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.AdapterView;
import
android.widget.ArrayAdapter;
import
android.widget.ListView;
import
android.widget.AdapterView.OnItemClickListener;
public
class
TestStringList
extends
Activity
implements
OnItemClickListener{
@Override
public
void
onItemClick(AdapterView
<?>
arg0,Viewarg1,
int
arg2,
long
arg3){
this
.setTitle(
"
YouClickItem:
"
+
String.valueOf(arg2));
}
private
ListViewmListView
=
null
;
@Override
protected
void
onCreate(BundlesavedInstanceState){
//
TODOAuto-generatedmethodstub
super
.onCreate(savedInstanceState);
mListView
=
new
ListView(
this
);
mListView.setOnItemClickListener(
this
);
ArrayAdapter
<
String
>
adapter
=
new
ArrayAdapter
<
String
>
(
this
,android.R.layout.simple_list_item_checked,
new
String[]{
"
ItemA
"
,
"
ItemB
"
,
"
ItemC
"
});
mListView.setAdapter(adapter);
this
.setContentView(mListView);
}
}
android listview onitemclick
最新推荐文章于 2022-04-12 09:50:33 发布
本文通过两个实例介绍了Android中ListView的基本使用方法。第一个实例展示了如何使用ListActivity结合SimpleAdapter显示多列数据,并实现点击事件。第二个实例则说明了如何在一个普通的Activity中使用ListView与ArrayAdapter。
1275

被折叠的 条评论
为什么被折叠?



