0
我已經檢查了與我自己相關的每個問題。我使用恕我直言的代碼完全不同。到目前爲止,我已經編碼了一切。我讀過,刪除數據庫中的數據只是通過傳遞位置,問題是數據庫中的自動生成的id與傳遞的位置不一樣。所有我想要實現的是刪除列表視圖中的項目後,數據庫中的項目也將被刪除。與數據庫一起在列表視圖中刪除項目[ANDROID]
從數據庫中獲取的所有數據的代碼:
public ArrayList<String> getData() {
String[] columns = new String[] { KEY_ID, KEY_CLIENT_NAME,
KEY_PRODUCT_NAME, KEY_SUPPLIER_PRICE, KEY_BS_PRICE, KEY_QTY,
KEY_TOTAL_AMOUNT };
Cursor c = sql.query(DB_TABLE, columns, null, null, null, null, null);
ArrayList<String> result = new ArrayList<String>();
int id = c.getColumnIndex(KEY_ID);
int cName = c.getColumnIndex(KEY_CLIENT_NAME);
int pName = c.getColumnIndex(KEY_PRODUCT_NAME);
int suppPrice = c.getColumnIndex(KEY_SUPPLIER_PRICE);
int bsPrice = c.getColumnIndex(KEY_BS_PRICE);
int qty = c.getColumnIndex(KEY_QTY);
int totalAmount = c.getColumnIndex(KEY_TOTAL_AMOUNT);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result.add("ID: " + c.getInt(id) + "\n" + "CLIENT NAME: "
+ c.getString(cName) + "\n" + "PRODUCT NAME: "
+ c.getString(pName) + "\n" + "SUPPLIER PRICE: "
+ c.getString(suppPrice) + "\n" + "RETAIL PRICE: "
+ c.getString(bsPrice) + "\n" + "QUANTITIY: "
+ c.getString(qty) + "\n" + "TOTAL: "
+ c.getString(totalAmount) + "\n");
}
return result;
}
中檢索數據的代碼:
sql = new SQLDatabase(this);
sql.open();
ArrayList<String> data = sql.getData();
sql.close();
的代碼刪除,應執行:
protected void onListItemClick(View view, int position, long id) {
Log.i("TAG", "onListItemClick id=" + position + id);
AlertDialog.Builder builder = new AlertDialog.Builder(Delete.this);
builder.setMessage("WHAT DO YOU WANT TO DO?");
builder.setNegativeButton("DELETE", new
DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) { }
// DELETE CODE HERE
});
builder.setNeutralButton("CANCEL", new
DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) { }
// DO NOTHING
});
builder.setCancelable(false); AlertDialog alertdialog =
builder.create(); alertdialog.show();
}
你有這樣的代碼示例嗎?抱歉。我不知道如何做到這一點。 – droidH 2013-03-08 14:19:02
添加標籤,同時添加DB中的每一行,如「,item_id1,item_id2 ....」。在準備列表視圖時,使用mView.setTag(「item_id1」)將此標記值添加到列表項中。現在,您可以通過使用這些分配的ID而不是索引來識別列表項目。 – ManishL 2013-03-11 07:00:56
我沒有達到你的建議,並最終使用simplecursoradapter。謝謝您的幫助。對不起,我不能投票。我需要更多的聲譽。 – droidH 2013-03-11 07:47:24