这是我根据上面的答案所做的,出于某种原因,我必须根据视图更改模型。这不起作用的原因很明显,因为并非所有项目都显示在视图中。我通过模型师迭代并在那里检查。
checkbox_selectAllListener = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
int c = 0;
if(isChecked) {
for (TaskModel iterable_element : mDataset) {
iterable_element.setCheckedForDeletion(true);
Log.e("Setting checked ", ""+ c);
c++;
}
} else {
for (TaskModel iterable_element : mDataset) {
iterable_element.setCheckedForDeletion(false);
}
Log.e("Setting unchecked ", ""+ c);
c++;
}
notifyDataSetChanged();
}
};
那么显然你应该将它存储在模型类中,而不是查看... – Selvin
是否要删除回收站视图中的所有项目?如果是的话,为什么不只是清除你的列表,而是在onBindViewHolder中做。如果你只是想显示勾号的项目,那么你当前的代码没有问题 –
我认为我已经完全错误了,我确实将它存储在数据模型类中,但只根据它们是否在视图中进行检查。我应该做的是循环通过数据模型,并在那里检查它们并检查onbindview是否被检查。 – Emsal