ListView介绍与实例
listView主要包括两方面:1定义adapter增加并显示数据 2定义监听器(单击监听器/选择监听器)
在ActivityManifest.xml里的主Activity里定义: //说明这个Activity是一个主Activity
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
(1)
istView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_single_choice, data));
listView.setItemsCanFocus(true);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
setContentView(listView);
ArrayAdapter:适用于数据时一般数组时
SimpleAdapter:适用于数据时一个list,而list中每一项又是一个Map时
构造方法:ArrayAdapter(Context context, int textViewResourceId, T[] objects)
构造方法:SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
resource代表Listview 中每个行框(item)的布局文件索引.就是那个.xml 中在R.Layout. # 那个整数.用这个.xml描述了每个Item的外表.
from 是map中的键,该数组指明了要取map里的哪个值。因为map是个键值对,你传进去键值,系统会自动给你找到他的值.
to 用来指明你从map里取的这写值如何和这个xml匹配,一般建议这个xml里有几个textview. 把这几个控建的ID传进去就好了.
系统的layout两项可以用来显示获取的值
android.R.id.text1 , android.R.id.text2
(2)为ListView设置单击监听器/选择监听器
OnItemClickListener,实现其中的onItemClick(AdapterView<?> parent, View view, int position,long id)方法
(AdapterView是ListView的父类)
parent.getItemAtPosition(position) //获得和这一行绑定的数据
OnItemSelectedListener 选择监听器
(3) ListActivity类
每一个ListActivity都有一个布局文件先关联
使用这个类,必须在xml里定义一个ListView,而且它的id必须为"@id/Android:list"
而且要设一个TextView.id为"@id/android:empty",用于在Adapter没有数据的时候显示
onListItemClick(ListView listView, View v, int position, long id)方法