废话不多说,直接上代码解释。主要解决如何获取ListView中被选中Item中某一列的值。
1.public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)//listview的监听函数的实现函数
注意上面这句话,其中函数中的第一个参数和第三个参数是解决问题的关键。第一个参数代表listview做数据适配的adapter,第三个参数代表被选中的listview中item的position值。
2.先介绍最简单的获取选中Item id的方法,经过上面的介绍,利用arg2参数获取位置,调用getItemIdAtPosition函数
long selected_id =arg0.getItemIdAtPosition(arg2);
selected_id即为选中item的id值。
3.在很多情况下我们不需要id值,而是需要某一列的值,这个就要根据为listview做数据绑定的adapter的类型而进行不一样的操作
情况一:使用SimpleAdapter,HashMap作为数据源
final SimpleAdapter adapter = new SimpleAdapter(this, getData2(),R.layout.item1, new String[] {"time"},new int[] {R.id.time});//定义SimpleAdapter
mListView2.setAdapter(adapter);//装配数据
在这种情况下:我们需要使用如下代码来获得某一列的数据
HashMap<String,String> map=(HashMap<String,String>)arg0.getItemAtPosition(arg2);
String timeString = map.get("time");情况二:使用SimpleCursorAdapter作为数据源,此时AdapterView<?> arg0的类型为Cursor游标
Cursor cursor= (Cursor)arg0.getItemAtPosition(arg2);
String sortString = cursor.getString(cursor.getColumnIndex("time"))