我有一个ListView lv
,它使用SQL数据库中的Cursor c
来填充它。但是,当选择一个项目时,我需要获取该行的ID。我怎么能这样做?
答案 0 :(得分: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
}
});
答案 1 :(得分:1)
以下是它对我的影响。在另一个类中,我创建了一个List类型的方法,并添加了列id&amp; sqlite数据库列表中项目的名称。
这是检索所选项目的列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的值。
如果你不完全理解这一点,可能是因为我还没有发布我的整个代码。但我会帮你解决问题。