主Activity的配置文件main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:id="@+id/listLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- android:id="@+id/android:list" —— 使用android的内置id android:scrollbars —— 滚动条。 --> <ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="false" android:scrollbars="vertical" /> </LinearLayout> </LinearLayout> 为ListView的内容写配置文件users.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="fill_parent" android:orientation="horizontal" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="1dip" android:paddingBottom="1dip"> <TextView android:id="@+id/user_name" android:layout_width="180dip" android:layout_height="30dip" android:textSize="10pt" android:singleLine="true" /> <TextView android:id="@+id/user_ip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="right" android:textSize="10pt" /> </LinearLayout> 源代码: package me.bym; import java.util.ArrayList; import java.util.HashMap; import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; /* * 要实现一个有ListView的Activity,则它应该是继承自ListActivity * ListActivity是Activity的一个子类。 */ public class ListViewTest extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map1 = new HashMap<String, String>(); HashMap<String, String> map2 = new HashMap<String, String>(); HashMap<String, String> map3 = new HashMap<String, String>(); map1.put("user_name", "zhangsan"); map1.put("user_ip", "192.168.0.1"); map2.put("user_name", "lisi"); map2.put("user_ip", "192.168.0.2"); map3.put("user_name", "wangwu"); map3.put("user_ip", "192.168.0.3"); list.add(map1); list.add(map2); list.add(map3); /* * 将ArrayList中的内容绑定到ListView上。 * public SimpleAdapter ( * Context context, // view所在的上下文(activity) * List<? extends Map<String, ?>> data, // 存放要显示内容的数组 * int resource, // 显示内容对应的布局资源文件 * String[] from, // 一个列名的数组,不显示,用来和map中的key对应 * int[] to // 为from数组中的每一个标题对应的列指定显示的控件。 * ) */ SimpleAdapter listAdapter = new SimpleAdapter(this, list, R.layout.users, new String[] {"user_name", "user_ip"}, new int[] {R.id.user_name, R.id.user_ip}); setListAdapter(listAdapter); } /* 要实现点击ListView上的Item完成某些操作,需重写ListActivity的onListItemClick方法。 * protected void onListItemClick ( * ListView l, // 发生点击事件的ListView * View v, // ListView中被点击的View(控件) * int position, // 被点击的View在ListView中的位置 * long id // 被点击的View的所在row的id * ) */ @Override protected void onListItemClick(ListView l, View v, int position, long id) { Toast.makeText(this, l.getId() + "" + v.getId() + "at:/n" + "position: " + position + " row id: " + id, Toast.LENGTH_SHORT).show(); } } 显示效果(点击了第二行):