2013-12-10 49 views
0

現在我有一個數據庫加載並顯示在ListView
我以爲我終於有刪除選項工作正常,但我意識到,當我刪除一個項目,它刪除THAT項目的所有實例。如何查找在數據庫中要刪除的項目的ID?

這裏是我的數據庫中刪除方法:

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

這裏是我是如何運行的刪除方法:

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

所以,很顯然它刪除那些說「橙色」的所有記錄,那麼多我知道。
我不知道該怎麼做是如何找到的ID只是選定的項目

回答

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(); 
相關問題