我有一个待办事项应用程序,在主屏幕上显示ListView
的任务列表。我点击完成按钮尝试删除任务。
但应用程序正在删除最低ID,而不是删除我尝试删除的任务。
public void onDoneButtonClick(View view) {
ListView listView = (ListView)findViewById(R.id.list);
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
int columnId = cursor.getColumnIndex(BaseColumns._ID);
int id = cursor.getInt(columnId);
Log.d("id", Float.toString(id));
String sql = String.format("DELETE FROM %s WHERE %s = %d",
TaskContract.TABLE,
TaskContract.Columns._ID,
id);
helper = new TaskDBHelper(MainActivity.this);
SQLiteDatabase sqlDB = helper.getWritableDatabase();
sqlDB.execSQL(sql);
updateUI();
Log.d("delete", sql);
}
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您可以在SQLiteDatabase中使用delete方法:
编辑:
// you must do it after opening database
helper = new TaskDBHelper(MainActivity.this);
SQLiteDatabase sqlDB = helper.getWritableDatabase();
sqlDB.delete(
TaskContract.TABLE, // table
TaskContract.Columns._ID + "=?", // where clause
new String[]{Integer.toString(id)} // where args
);