java - ListView (2 行)onclick : retrieve specific data from clicked item (can't access map-like object)

标签 java android dictionary

我正在根据数据库查询构建一个 ListView (每个项目有 2 行)。我将一些数据附加到每个项目,但稍后在他们的 onClick 监听器中再次检索它时遇到问题。

数据 是键/值对列表,比方说标题、日期和 ID

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

我的适配器创建如下所示的 ListView :

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 知识。无论哪种方式,我都希望获得有关如何从此“类 map ”对象 obj 访问特定值的一些信息。

最佳答案

在您的 onListItemClick() 监听器中,只需将通用对象转换为您的 map :

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");

关于java - ListView (2 行)onclick : retrieve specific data from clicked item (can't access map-like object),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12980672/

相关文章:

swift - 如何访问另一个结构值

java - 从其他类引用整数

java - 为什么只有当从其他类调用 sub() 方法时 "this.personService"才为 null?

Java 双重检查锁定

android - 使用picasso使用一串文本和一串图像创建ListView

android - 更改默认搜索栏颜色

python - Flask:无法解码使用请求提交的传入 JSON

ios - 为什么我的代码无法填充字典(和表格 View )?

java - 玩框架 2.1.x 和 EbeanServer

java - 如何从 Assets 中解析XML?