在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);
}
}
運行結果