java - 从SQLite数据库删除项目时出错

标签 java android database sqlite indexoutofboundsexception

我正在尝试从SQLite数据库中删除RecyclerView中的项目,但出现以下错误:

java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
    at java.util.ArrayList.get(ArrayList.java:437)
    at com.reogen.bettarium.Fragments.ListFragment.onSwipe(ListFragment.java:135)
    at com.reogen.bettarium.Helpers.SwipeToDelete.onSwiped(SwipeToDelete.java:30)


但是我不明白怎么了。这两行是:

            public Void onSwipe(RecyclerView.ViewHolder viewHolder, int direction, int position) {
    if (viewHolder instanceof ToDoAdapter.ToDoViewHolder) {
        String name = list.get(viewHolder.getAdapterPosition()).get_title();<-----




public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {

    if (listener != null) {
        listener.onSwipe(viewHolder, direction, viewHolder.getAdapterPosition()); <-----

    }

}


为什么我的应用崩溃了并且没有从数据库中删除项目?
非常感谢

编辑:
我正在尝试使用主要片段中的OnSwipe从recyclerView和数据库中删除项目:

 public Void onSwipe(RecyclerView.ViewHolder viewHolder, int direction, int position) {
    if (viewHolder instanceof ToDoAdapter.ToDoViewHolder) {
        String name = list.get(viewHolder.getAdapterPosition()).get_title();
         int deleteIndex = viewHolder.getAdapterPosition();

        toDoAdapter.removeItem(deleteIndex);

        mDatabase.execSQL("DELETE FROM " + TABLE_TODO + " WHERE " + COLUMN_TODONAME + "=\"" + name + "\";");


        //mDatabase.delete(ToDoDBHandler.ToDoItemDatabase.TABLE_TODO, ToDoDBHandler.ToDoItemDatabase.COLUMN_ID + "=" + position, null);
        toDoAdapter.swapCursor(newCursor());
    }

最佳答案

尝试将String name = list.get(viewHolder.getAdapterPosition()).get_title();更改为String name = list.get(position).get_title();

关于java - 从SQLite数据库删除项目时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56739048/

相关文章:

Java 打开注册表项 'Software\JavaSoft\Java Runtime Environment' 时出错

java - 如何从使用反射实现接口(interface)的类的字段中获取值?

java - 从 C/C++ 在内存中写入一个缓冲区,并在没有 JNI 的情况下在 java 中从中读取

mysql - 将 TXT 文件的特定列加载到 MySQL 数据库表

java - Java 的基本字符串帮助(这里是新手)

android - Gradle:构建Android库后如何运行自定义任务?

android - ADB 显示未知设备

android - CollapsingToolbarlayout 中的工具栏问题

mysql - 无法在 64 位 Win7 上安装 fedena

java - 无法连接到 MS Access 数据库