如何在数据库中找到要删除的项目的ID?

时间:2013-12-10 03:10:58

标签: android android-sqlite

现在我已经加载了一个数据库并显示在ListView中 我以为我终于让删除选项工作正常,但我意识到当我删除一个项目时,它会删除该项目的所有实例。

这是我的数据库删除方法:

public boolean deleteContact(String item) {
    return db.delete(DATABASE_TABLE, KEY_ITEM + "='" + item + "'", null) > 0;
}

以下是我正在运行删除方法的方法:

db.open();
db.deleteContact("Orange");
db.close();

很明显,它删除了所有说“Orange”的记录,我知道的很多 我不知道该怎么做才能找到所选项目的ID

1 个答案:

答案 0 :(得分:1)

您的ListAdapter有一个方法getItemId()来获取给定位置的项目_id。用它来删除你的行。

public boolean deleteContact(long id) {
    return db.delete(DATABASE_TABLE, "_id=?", new String[] { String.valueOf(id) }) > 0;
}

运行如下代码:

ListAdapter adapter = getListAdapter(); // if you are on a ListActivity or ListFragment
db.open();
db.deleteContact(adapter.getItemId(pos)); // where pos is the postion in list, eg. from onItemClick()
db.close();