2013-07-30 182 views
0

所以我有方法的數據庫:從數據庫中刪除項目並更新列表視圖?

public boolean deleteContact(long rowId) { 
    return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0; 
} 

我對如何利用它,但它只是不刪除項的總體思路。我不知道如何找出該項目是在哪一行下面是在它的數據庫中的列表視圖,與在特定事件:

private void Items() { 
    AlertDialog.Builder dlgAlert = new AlertDialog.Builder(ItemsList.this); 
    dlgAlert.setTitle("Something Here"); 
    dlgAlert.setMessage("What would you like to do?"); 
    dlgAlert.setPositiveButton("Cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 
    dlgAlert.setNegativeButton("Delete", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 

//This is where it should be finding what row the item is in and deleting it... 

       } 
      }); 
    dlgAlert.setCancelable(true); 
    dlgAlert.create().show(); 
} 
+0

任何人都不可能回答這個問題。你需要做的是做更多的研究如何開發基於android的數據庫應用程序。 – Qberticus

+0

你有一個自定義的適配器來顯示你的列表視圖?通常你將listview的項目設置爲onItemClickListener。在那裏,你可以靈活地得到你想要的東西 – Opiatefuchs

+0

嗯,我假設我需要調用類似於:'db.deleteContact(//然後以某種方式找到該行的id);'我只是不知道如何做吧.. –

回答

0

我假設你已經使用的適配器來填充列表視圖。一般來說,當處理android數據庫時,我們必須給出一個自動增量列_id。您可以使用參數「int which」來獲取被點擊的條目。 int參數將等於_id(您的數據庫的自動增量列)將您的數據庫移至光標,將光標移至「which」並相應地刪除該項目。當你保存你可能已經分配了類似的_id或ITEM_NO或類似的東西,一些獨特的標識符中的所有項目

在你的數據庫:

0

試試這個。

因此,當您在遊標中獲取數據並在自定義適配器的GetView方法中將自定義適配器分配給List時,您可以獲取該唯一標識符的值。獲得後設置標籤查看您的身份證號碼。所以當你點擊列表中的任何視圖時,你將得到它的標籤值。並將其傳遞給你的方法項(字符串標籤)。當點擊警報按鈕時,您可以調用與方法中給定的標識符匹配的數據庫刪除方法。以便它可以刪除該記錄。

希望它有助於!

相關問題