在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。
main.xml布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/MyListView">
</ListView>
</LinearLayout>
my_listitem.xml布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="wrap_content"
android:id="@+id/myListItem"
android:paddingBottom="3dip"
android:paddingLeft="10dip">
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/itemTitle"
android:textSize="20dip">
</TextView>
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/itemText">
</TextView>
</LinearLayout>
LsActivity类
package com.ljq.ls;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class LsActivity extends Activity {
private ListView list = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list = (ListView) findViewById(R.id.MyListView);
//组织数据源
List<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
for(int i=0;i<10;i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("itemTitle", "This is Title");
map.put("itemText", "This is text");
mylist.add(map);
}
//配置适配器
SimpleAdapter adapter = new SimpleAdapter(this,
mylist,//数据源
R.layout.my_listitem,//显示布局
new String[] {"itemTitle", "itemText"}, //数据源的属性字段
new int[] {R.id.itemTitle,R.id.itemText}); //布局里的控件id
//添加并且显示
list.setAdapter(adapter);
}
}
运行结果