如何从 recyclerview 和 sqlite 中删除项目? [复制]
Posted
技术标签:
【中文标题】如何从 recyclerview 和 sqlite 中删除项目? [复制]【英文标题】:How to delete an item from recyclerview and sqlite? [duplicate] 【发布时间】:2019-10-02 17:59:14 【问题描述】:我尝试从 recyclerview 和 slqlite 数据库中删除一个项目。 这些是活动:
1.数据库
DatabaseHandler.java
public void deleteTask(long position)
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_TASKS, KEY_TASK_ID + "=" + position, null);
db.close();
-
TaskAdapter 中的 onBindViewHolder
TaskAdapter.java
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position)
final Task stringTask = tasksList.get(position);
holder.taskText.setText(stringTask.getTaskName());
holder.dateText.setText(stringTask.getTaskDate());
holder.id = stringTask.getID();
holder.deleteButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
tasksList.remove(position);
notifyItemRemoved(position);
dth.deleteTask(stringTask.getID());
);
这是错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.android.todolistapp.DatabaseHandler.deleteTask(long)' on a null object reference
at com.example.android.todolistapp.TaskAdapter$1.onClick(TaskAdapter.java:51)
at android.view.View.performClick(View.java:6935)
at android.widget.TextView.performClick(TextView.java:12738)
at android.view.View$PerformClick.run(View.java:26211)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:7000)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
【问题讨论】:
你的 dth 对象好像是空的,能不能把整个类都放上来看看它的实例化? 【参考方案1】:dth.deleteTask(stringTask.getID()); dth 没有被实例化。创建DatabaseHandler的对象并赋值给dth。
【讨论】:
以上是关于如何从 recyclerview 和 sqlite 中删除项目? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用从 SQLite 概括的数据填充 RecyclerView/ListView
如何在基于 SQLite 的 recyclerview 中实现 searchview? - 安卓
当sqlite android片段中的数据更改或删除时如何刷新recyclerview?