0

我有一个ListView lv使用Cursor cSQL 数据库中的 a 来填充它。选择了一个项目时,我需要获取行的ID。我怎样才能做到这一点?

4

2 回答 2

2

我假设您使用的是 SimpleCursorAdapter (或类似的),所以我会使用OnItemClickListener

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // id references the SQLiteDatabase _id column
    }
});
于 2012-09-04T17:50:53.697 回答
1

这就是它对我的影响。在另一个类中,我创建了一个 List 类型的方法,并在 sqlite 数据库的列表中添加了列 ID 和项目的名称。

这是一段用于检索所选项目的列 ID 的代码。

    public List<String> list;
    adapt = new MyAdapter(this, R.layout.list_inner_view, list); //custom adapter
    listTask.setAdapter(adapt);

    listTask.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> adapterView, View v, int position, long l) {

           Integer id = list.get(position).getId();
          //position is the position of the item in the list.
       }
   });

结果:该项目在列表中的第 3 位。它的数据库 column_id(自动增量)值是 12,因为我已经删除了以前的项目。所以你期望的结果是 12,也就是变量 id 的值。

如果您不完全理解这一点,可能是因为我没有发布我的整个代码。但我会帮你解决你的问题。

于 2015-02-10T09:07:39.163 回答