使用游标删除sqlite数据库中的项目

时间:2017-12-09 13:35:23

标签: android sqlite android-recyclerview

我有一个光标填充了我的数据库,我想删除此表中的元素。

她是我数据库的删除代码:

public void deleteItem(int id){
    SQLiteDatabase database = this.getWritableDatabase();
    database.delete(ContractParaGastos.GASTO, ContractParaGastos.Columnas.MONTO + " = ?", new String[]{String.valueOf(id)});
    database.close();
}

以下是recyclerviewAdapter中的删除代码:

 viewHolder.button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           databaseHelper.deleteItem(i);
        }
    });
}

我在我的适配器中添加了这一行:

 databaseHelper = new DatabaseHelper(context, ContractParaGastos.GASTO, null, 4);

但是当我点击删除按钮时没有任何反应。该行仍然存在于我的Recyclerview中。

请帮帮我!

2 个答案:

答案 0 :(得分:0)

因为您没有初始化databaseHelper

试用此代码:

   DatabaseHelper databaseHelper = new DatabaseHelper(this); //in case of activity.
   DatabaseHelper databaseHelper = new DatabaseHelper(getActivity()); //in case of Fragment.

将此代码粘贴到onCreate() of ActivityonCreateView() of Fragment

谢谢,如果有人需要了解更多,请告诉我。

答案 1 :(得分:0)

从您提供的小代码

我将检查变量i in:     databaseHelper.deleteItem(ⅰ); 表示我需要删除的记录的现有ID。