本文转自:http://nwhy.org/android-listview.html
对listview的简单使用很有帮助。
先是在XML里定义一个ListView:
< ?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<listview android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/list"
/>
</linearlayout>
然后呢就在Activity里:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView list = (ListView) findViewById(R.id.list);
//获得数据,也可以从数据库里读取
ArrayList<hashmap <String, Object>> listItems = new ArrayList</hashmap><hashmap <String, Object>>();
for(int i=0;i < 5;i++){
HashMap<String, Object> map = new HashMap<string , Object>();
map.put("ItemTitle", "Title "+i);
map.put("ItemText", "Text "+i);
listItems.add(map);
}
//生成适配器并和动态数组对应的元素绑定
SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItems,
R.layout.list_item,
new String[] {"ItemTitle","ItemText"},
new int[] {R.id.ItemTitle,R.id.ItemText}
);
//设置数据源
list.setListAdapter(listItemAdapter);
//点击事件
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView< ?> arg0, View arg1, int arg2,
long arg3) {
//do something
}
});
}
最后是list_item.xml:
< ?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<textview android:text="Title"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/ItemTitle"
/>
<textview android:text="Text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/ItemText"
/>
</linearlayout>
可以自己定义list里边各item的样式,加上各种Layout组合就可以做出各种不一样的ListView了。