选中recyclerview上的错误复选框



我有以下代码。如果复选框的名称在函数采用的"dename"数组中,我希望选中该复选框。但那些没有输入"if"的标记却很奇怪。上下滚动时有随机检查

public SubjectRecyclerViewAdapter(ArrayList<Subject> subjects, ArrayList<String> deneme) {
this.subjects = subjects;
this.deneme = deneme;
}

@Override
public void onBindViewHolder(@NonNull  SubjectRecyclerViewAdapter.MyViewHolder holder, int position) {
holder.checkBox.setText(subjects.get(position).getCheckBoxSubject());
if (deneme.contains(subjects.get(position).getCheckBoxSubject())) {

holder.checkBox.setChecked(true);
}}

因为ViewHolder是回收的(意味着它们在滚动时被重复使用(,所以您需要明确设置复选框的状态(这样它就可以更改ViewHolder以前的状态(:

if (deneme.contains(subjects.get(position).getCheckBoxSubject())) {    
holder.checkBox.setChecked(true);
} else {
holder.checkBox.setChecked(false);
}