现在我已经加载了一个数据库并显示在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 ?
答案 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();