如何从SQLiteDatabase中删除行?

时间:2015-07-20 09:14:35

标签: android sqlite

我有一个待办事项应用程序,在主屏幕上显示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);


 } 

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以在SQLiteDatabase中使用delete方法:

http://tinyurl.com/ngv2v3n

编辑:

// 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
            );