您的位置:首页 > 其它

解决RecycylerView中使用Togglebutton崩溃的问题

2016-12-10 14:51 501 查看
如果在togglebutton中的事件有刷新adapter的操作,则可能发生崩溃现象

解决办法:

在Adapter中定义一个布尔变量,如boolean onBind;

在onBindViewHolder中开始绑定viewholder时,将变量设置为true,结束时设置为false.当设置togglebutton事件时判断是否在绑定阶段。使用如下

@Override
public void onBindViewHolder(final MedicationHolder holder, int position) {
onBind = true;
MedicationReminderResponse.MedicationReminderItem item = list.get(position);
holder.switchButton.setChecked(item.isOpen());
holder.switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (onBind != true && onCheckedChangeListener != null)
onCheckedChangeListener.onCheckChange(holder.getLayoutPosition(), isChecked);
}
}
onBind = false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息