我在应用程序中有 3 个活动,即 ExpenseSummary、AddExpense、ExpenseList。
我正在使用光标适配器来填充费用清单。
这是来自 ExpenseCursorAdapter 的代码片段
Button deleteItem=(Button)view.findViewById(R.id.deleteItem);
deleteItem.setTag(cursor.getString(cursor.getColumnIndex(ExpenseEntry.COLUMN_NAME_ID)));
final ExpenseTrackerDBHelper db_helper = new ExpenseTrackerDBHelper(context);
deleteItem.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
deleteRecordWithId(itemId);
cursor.requery();
notifyDataSetChanged();
}
private void deleteRecordWithId(String itemId) {
String selection = ExpenseEntry.COLUMN_NAME_ID + " = ?";
// Specify arguments in placeholder order.
String[] selectionArgs = { String.valueOf(itemId) };
// Issue SQL statement.
SQLiteDatabase db = db_helper.getWritableDatabase();
db.delete(ExpenseEntry.TABLE_NAME, selection, selectionArgs);
}
});
当我尝试删除一个项目时,它会从列表中删除。虽然我不确定它是否会从数据库中删除。
现在,如果单击显示 EspenseSummary Activity 的返回按钮,该按钮使用 on_create 方法中的以下代码显示所有费用的总和。
public void showExpenseTotal(){
ExpenseTrackerDBHelper mDbHelper = new ExpenseTrackerDBHelper(this);
SQLiteDatabase db = mDbHelper.getReadableDatabase();
long total_expense = 0;
Cursor cursor;
cursor = db.rawQuery("SELECT SUM(amount) FROM Expenses;", null);
cursor.moveToFirst();
total_expense = cursor.getLong(0);
String total = Long.toString(total_expense);
expenseTotal.setText(total.toString());
}
更新:
protected void onResume(Bundle savedInstanceState) {
showExpenseTotal();
}
这个总数没有更新。项目删除未反映在摘要页面中。尽管如果我添加新费用,显示的总费用就会正确。
请在这里帮助我。我是安卓新手。