标签:android-checkbox android android-recyclerview
Textview和Checkbox都在Recyclerview中.最初选中所有复选框.我想阻止用户更改Checkboxes状态,但我不想阻止Recyclerview滚动.我想在我的片段类中而不是在适配器类中执行此操作.
如何防止用户更改Checkboxes状态?
下面是适配器类中onBindViewHolder编写的示例代码.
holder.cbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//set your object's last status
tblFilm.setSelected(isChecked);
}
});
The above code used for first mode which allows user clicks on
checkbox.After that I have second mode where I do not want to get clicked on
checkbox at all.
为此,我所做的就是下面.
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项目.
解决方法:
每个CheckBox都有方法setEnabled
.
在onBindViewHolder
中,您可以获得所需复选框的引用并将其禁用.
像这样的东西:
public void onBindViewHolder(ViewHolder holder, final int position) {
holder.checkBox.setEnabled(data.get(position).isEnabled());
}
下面的答案是通过xml的工作解决方案.
标签:android-checkbox,android,android-recyclerview 来源: https://codeday.me/bug/20190829/1759122.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。