Android学习笔记(四)

ListView列表控件,能够在以列表的形式显示出来的视图,效果如下图所示:


并且能够选择其中的某个项,触发事件。

listView构建需要两个布局文件,主布局文件负责整个布局main.xml,另外一个负责listView如何显示的user.xml:

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"
    >
 <ListView android:id="@id/android:list"
 			android:layout_height="wrap_content"
 			android:layout_width="fill_parent"
 			android:drawSelectorOnTop="false"
 			android:scrollbars="vertical"></ListView>
</LinearLayout>

user.xml在Activity中显示方式,线性的水平布局
<?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:padding="10dip">
<TextView android:id="@+id/user_name" android:layout_width="180dip"
				android:layout_height="30dip"
				android:textSize="10pt"
				android:singleLine="false"/>
<TextView android:id="@+id/user_ip" android:layout_width="fill_parent"
				android:layout_height="fill_parent"
				android:textSize="10pt"
				android:singleLine="false"/>
</LinearLayout>

在Activity类写列表的显示内容,以及相应的监听器:

public class Activity_listView extends ListActivity {
	private ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        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", "gap");
        map1.put("user_ip", "192.168.1.0");
        map2.put("user_name", "lei");
        map2.put("user_ip", "192.168.1.1");
        map3.put("user_name", "li");
        map3.put("user_ip", "192.168.1.2");
        
        list.add(map1);
        list.add(map2);
        list.add(map3);
        
        /** 
         * 这是一种适配器模式,An easy adapter to map static data to views defined in an XML file.
         * 参数一 Context就是该Activity
         * 参数二 就是上边声明的那个ArrayList对象 
         * 参数三 这个参数用来指定 我们一行数据 的key 也就是一个map对象的key 上下结合看一下 因为我们一条数据也就是一行 
         * 对应一个map对象 一个map对象包含2个数据 即 user_name 和 user_ip 这个参数就是用来指定这2个key 这里是通过String数组的方式 
         * 参数四  大家一看就知道了 意思是 user_name 这条数据用 R.id.user_name 这个TextView显示  user_ip 这条数据用  
         * R.id.user_ip 显示 
         */  
        SimpleAdapter listAdapter = new SimpleAdapter(this, list, R.layout.user, new String[]{"user_name", "user_ip"},
        		new int[] {R.id.user_name, R.id.user_ip});
        setListAdapter(listAdapter);
    }

	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		// TODO Auto-generated method stub
		super.onListItemClick(l, v, position, id);
		Toast.makeText(Activity_listView.this, list.get(position).get("user_name"), Toast.LENGTH_SHORT).show();//弹出对话框
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值