gpt4 book ai didi

android - 加载时检查 RecyclerView 中的 CheckBox

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:50 24 4
gpt4 key购买 nike

我正在创建一个包含项目的 RecyclerView。每个项目都有一个 CheckBoxImageButton 和一个 TextView,如下所述:

public class RecyclerViewViewHolder extends RecyclerView.ViewHolder {
RelativeLayout item;
TextView id;
TextView name;
ImageButton delete;
CheckBox checkBox;

public RecyclerViewViewHolder(View view) {
super(view);

item = (RelativeLayout) view.findViewById(R.id.layout_item_item);
id = (TextView) view.findViewById(R.id.layout_item_id);
name = (TextView) view.findViewById(R.id.layout_item_name);
delete = (ImageButton) view.findViewById(R.id.layout_item_delete);
checkBox = (CheckBox) view.findViewById(R.id.layout_item_checkbox);
}
}

我希望仅当数据库列中的特定值等于 1 时才选中 checkbox View 。如果值为 0,则不应检查。我从下面的代码开始:

SQLiteDatabaseAdapter database = new SQLiteDatabaseAdapter(context);
database.open();

Cursor cursor = database.getAllItems(table);

if (cursor.moveToFirst()) {
do {
if (cursor.getInt(2) == 0) {
viewHolder.checkBox.setChecked(false);
}

else {
viewHolder.checkBox.setChecked(true);
}

} while (cursor.moveToNext());

}

database.close();

此代码有效,但它会检查数据库中的第一行,如果 checked 列是 1,它会更改每个 单个 CheckBox 被选中。我只想检查与一个特定行关联的 CheckBox,而不是每一行。我该怎么做?

最佳答案

问题是您要遍历游标中的每一行。相反,您需要通过调用 cursor.moveToPosition() 转到当前 position 的行.

在伪代码中,您应该遵循的步骤是

  1. 打开数据库。
  2. 获取光标。
  3. 将光标移动到正确的行。
  4. 从游标中检索值。
  5. 复选框设置为正确的状态。
  6. 关闭光标。

我将细节作为练习留给读者。

关于android - 加载时检查 RecyclerView 中的 CheckBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37692395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com