视图持有人上的空指针



我正在尝试将复选框的状态保存在我的主活动中,而不是在我的自定义适配器中。我已经检查了正确的数据存储在共享首选项中并且可以成功检索信息,但是当我尝试在打开应用程序时标记复选框时,查看者为空。理论上,我明白问题是什么,但我不知道如何解决它。

这是我遇到问题的主要活动中的代码部分:

for (int i= 0; i<results.size(); i++) {
result = (Results) customAdapter.getItem(i);
if (result != null) {
String RESULT = result.getTitle();
if (sharedPref.getBoolean(result.getTitle(), false)){
Log.i("Saved", result.getTitle());
CustomAdapter.ViewHolder viewHolder = (CustomAdapter.ViewHolder) listView.getTag(i);
Log.i("viewHolder", String.valueOf(viewHolder));
viewHolder.getCheckBox().setChecked(sharedPref.getBoolean(RESULT, false));
}
}
}

您正在准备一个要传递给适配器的List<Results>,对吗?首先Results模型类中添加一个额外的布尔变量来表示复选框的状态。现在,在准备活动中的列表时,为首选项中的每个项目设置此新布尔值的值。以便您的List<Results>包含复选框的状态。

最新更新