正如標題所說,我有一個列表,在長按提供了一個選項來從數據庫中刪除列表中的項目。當我運行代碼時,什麼都沒有發生,我得到一個警告「窗口已經聚焦,忽略聚焦增益」。 這裏的代碼片段 -android - 從上下文菜單的數據庫中刪除項目
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.remove:
System.out.println(sindex);
db.open();
db.deleteIP(info.position); //deleteIP is the method to delete item from list
db.close();
return true;
default:
return super.onContextItemSelected(item);
}
}
deleteIP() -
public boolean deleteIP(long _id)
{
return db.delete(DATABASE_TABLE, KEY_ID + "=" + _id, null) > 0;
}
是db.deleteIP(info.position)
產生什麼問題? 我嘗試了另外一個選項。我已經在sindex中存儲了列表項的索引。所以打電話db.deleteIP(sindex)
應該已經工作。但它沒有!
請幫忙! 謝謝。
你檢查數據是否從數據庫中刪除? prolly是的,但你沒有刷新適配器 – Selvin
我應該如何檢查數據是否被刪除? – Umang
嗯,你不明白你自己的代碼?檢查deleteIP返回或重新運行應用程序以查看行是否仍然存在 – Selvin