0
我正在使用3個TextViews和1按鈕的CursorAdapter。我想在按下按鈕時從數據庫中刪除條目。
注:存在於這個很多職位,但他們都使用現在貶值「cursor.requery」我想刪除一行中的列表視圖使用該行中的按鈕沒有cursor.requery,因爲它是貶值
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
TextView viewID = (TextView) view.findViewById(R.id.viewID);
TextView viewAmount=(TextView) view.findViewById(R.id.viewAmount);
TextView viewCategory=(TextView) view.findViewById(R.id.viewCategory);
Button buttonDelete = (Button) view.findViewById(R.id.buttonDelete);
final int id = cursor.getInt(cursor.getColumnIndexOrThrow("_id"));
String amount = cursor.getString(cursor.getColumnIndexOrThrow("amount"));
String category = cursor.getString(cursor.getColumnIndexOrThrow("category"));
viewID.setText(String.valueOf(id));
viewAmount.setText(amount);
viewCategory.setText(category);
buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Deleted item " + id, Toast.LENGTH_SHORT).show();
//Do I create a DB handler here and run a dbHandler.deleteItem(id)
//method or do something else?
}
});
}
所以我跑了db.deleteTransaction (ID);因爲我在我的dbHandler查詢,它確實刪除了事務。但是:(1)它沒有刷新表格,我不得不手動進入前一頁面並返回以使更改生效,(2)我認爲在CustomAdapter類中運行SQL查詢是不好的,因爲這個類運行非常頻繁。 –
只是在刪除所選行後意圖執行您的活動:) –
因此,我添加了一個意圖,使用listview重新激活該活動,並且它的工作原理是刪除一個項目並更改屏幕以反映新數據集。然而,它不是「令人耳目一新」,而是創造一個「新」屏幕。這意味着,當我點擊手機上的後退按鈕時,它會在發生刪除之前回到屏幕......包含刪除行。 –