Ошибка при запросе в SQL

Ошибка:

    android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
        at android.database.AbstractCursor.checkPosition(AbstractCursor.java:474)
        at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
        at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
        at com.example.arraylist.DBHelper.getSubtaskChecked(DBHelper.java:193)
        at com.example.arraylist.SubtaskViewHolder.bind(SubtaskViewHolder.java:27)
        at com.example.arraylist.MultiTypeTaskAdapter.onBindChildViewHolder(MultiTypeTaskAdapter.java:135)
        at com.example.arraylist.MultiTypeTaskAdapter.onBindChildViewHolder(MultiTypeTaskAdapter.java:11)

Сначала я передаю класс из адаптера холдеру:

   @Override
    public void onBindChildViewHolder(SubtaskViewHolder holder, int flatPosition, ExpandableGroup group, int childIndex) {
        final Subtask subtask = (Subtask) group.getItems().get(childIndex);
        holder.bind(subtask);
    }

В холдере я отправляю в бд запрос(dbHelper.getSubtaskChecked), чтобы получить Boolean переменную

ViewHolder:

public class SubtaskViewHolder extends ChildViewHolder {

    private DBHelper dbHelper;
    private TextView task;
    private CheckBox checkBox;

    public SubtaskViewHolder(View itemView) {
        super(itemView);
        task = itemView.findViewById(R.id.subtask);
        checkBox = itemView.findViewById(R.id.checkBox);
    }

    public void bind(final Subtask subtask) {
        task.setText(subtask.task);
        dbHelper = new DBHelper(itemView.getContext());
        final Boolean checked = dbHelper.getSubtaskChecked(subtask.id);
        checkBox.setChecked(checked);
        checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dbHelper = new DBHelper(v.getContext());
                dbHelper.updateTableSubtasks_checkBox(subtask.id, checked);
            }
        });
    }
}

getSubtaskChecked:

    public Boolean getSubtaskChecked(Long id) {
        SQLiteDatabase db = this.getReadableDatabase();
        String[] selectionArgs = new String[] {String.valueOf(id)};
        Cursor cursor = db.query(TABLE_SUBTASKS, null,
                "_id = ?", selectionArgs, null, null, null);
        cursor.moveToFirst();
        Boolean checked = Boolean.valueOf(cursor.getString(cursor.getColumnIndex(COLUMN_CHECKED)));
        cursor.close();
        return checked;
    }

Ответы (0 шт):