listview(2行)onclick:从点击的项目中检索特定数据(无法访问类似地图的对象)

时间:2012-10-19 18:54:03

标签: java android dictionary

我正在从数据库查询构建一个listview(每个项目有两行)。我将一些数据附加到每个项目,我在以后的onClick侦听器中再次检索它时遇到了问题。

数据是键/值对的列表,例如标题,日期和ID

List<Map<String, String>> data = new ArrayList<Map<String, String>>();

我的适配器用于创建如下所示的列表视图:

SimpleAdapter adapter = new SimpleAdapter(this, data,
            android.R.layout.simple_list_item_2,
            new String[] {"title", "date"},
            new int[] {android.R.id.text1, android.R.id.text2});
            itemlist.setAdapter(adapter);
            setListAdapter(adapter);

我正在附加onListItemClick监听器,如下所示:

protected void onListItemClick(ListView l, View v, int position, long id) {
      super.onListItemClick(l, v, position, id);
      Intent intent = new Intent(this, CtestActivity.class);
      Object obj = this.getListAdapter().getItem(position);
      // here I want to extract the id from obj
      // obj.toString() is {id:7, title: sometitle, date: yesterday}
}

这可能很简单,缺乏java知识。无论哪种方式,我都会欣赏有关如何从这个“类似地图”的对象obj中访问特定值的一些信息。

1 个答案:

答案 0 :(得分:1)

onListItemClick()监听器中,只需将通用对象转换为地图:

Map<String, String> map = (Map<String, String>) this.getListAdapter().getItem(position);
String id = map.get("id");
String title = map.get("title");
String date = map.get("date");