在RecyclerView中保留CheckBox状态,由SQL数据库提供

问题描述 投票:0回答:1

各位晚上好

在更好的解释之前简要概述。我目前有一个SQL数据库,由于模态,它可以输入arraylist,然后我们将这个arraylist提供给我们的循环视图适配器,然后填充行。

现在我正在尝试构建用户选择行的选项,然后检查变为true并显示tick。正如您目前所知,如果状态未存储,则它开始移动到随机行或完全删除。

让我们从我的SQL Lite数据库开始。三个简单的行标题,描述和复选框状态。请注意,当一个新行添加到sql时,他的复选框列会自动设置为false。

用于填充我的recyclerView适配器的SQL查询下面的代码片段

ArrayList<NoteInfoModal> noteInfoModalArrayList = new ArrayList<>();
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    Cursor cursor =  sqLiteDatabase.rawQuery("SELECT * FROM " + Primary_Table + " ORDER BY Col_DateOrder ASC",   null);
    cursor.moveToFirst();


    while (!cursor.isAfterLast()){

        NoteInfoModal noteInfoModal = new NoteInfoModal();
        noteInfoModal.setNoteName(cursor.getString(cursor.getColumnIndex(Col_NoteTitle)));

将其应用于适配器

homeScreenAdapter = new HomeScreenAdapter(getContext(), primaryDatabase.populateHomeScreenOldestFirst(), filterOption, HomeScreenFragment.this);

最后将适配器内的信息绑定到正确的视图(这个用于复选框)

((CustomViewHolder) holder).chkNote.setChecked(Boolean.valueOf(noteInfoModal.noteCheckBox));

现在我明白我可以简单地将SQL DB的行更新为true,因为这将保存状态,但如果用户关闭然后再次打开应用程序,我希望每次都取消选中/ false

只是寻找另一种解决这个问题的方法。

谢谢

android checkbox android-recyclerview state
1个回答
0
投票

我想我会输入解决问题的当前方式。

现在,当用户单击一个复选框时,它将更新SQL变为true或false,因为我希望在重新打开应用程序时所有结果都为false我已经实现了一小部分SQL Lite代码,它将为我设置一个列为false。

public boolean checkboxStateColumn ()
{
    SQLiteDatabase db = this.getReadableDatabase();
    ContentValues args = new ContentValues();
    args.put(Col_CheckedRow, "false");

    int i =  db.update(Primary_Table, args, Col_CheckedRow + "=" + Col_CheckedRow , null);
    return i > 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.