在Recyclerview中有Textviews和Checkboxes。最初所有的复选框都是被选中的。我想防止用户改变复选框的状态,但我不想阻止Recyclerview滚动。我希望在我的片段类中实现这个功能,而不是在适配器类中。
如何防止用户改变复选框的状态?
以下是在适配器类的onBindViewHolder中编写的示例代码。
holder.cbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//set your object's last status
tblFilm.setSelected(isChecked);
}
});
以上代码用于第一种模式,允许用户单击复选框。
之后我有第二种模式,在这种模式下我不希望复选框被单击。
为此,我做了以下工作。
optionsoff(recyclerView);
private static void optionsOff(ViewGroup layout) {
layout.setEnabled(false);
layout.setClickable(false);
for (int i = 0; i < layout.getChildCount(); i++) {
View child = layout.getChildAt(i);
if (child instanceof ViewGroup) {
optionsOff((ViewGroup) child);
} else {
child.setEnabled(false);
child.setClickable(false);
}
}
我猜测这个
optionsoff()
不起作用了,因为它没有禁用复选框。我仍然可以点击复选框。我需要帮助解决第二种方法,即禁用Recyclerview项目。