获取Android控件ListView中被选中的某一列的值

  废话不多说,直接上代码解释。主要解决如何获取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"))

 

posted @ 2013-05-13 17:13  llf_hwj  阅读(2227)  评论(0编辑  收藏  举报