Android - 从ListView选择中获取数据库ID

时间:2012-09-04 17:42:50

标签: android database sqlite android-listview cursor

我有一个ListView lv,它使用SQL数据库中的Cursor c来填充它。但是,当选择一个项目时,我需要获取该行的ID。我怎么能这样做?

2 个答案:

答案 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的值。

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