android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法
2015-02-06 10:55
639 查看
今天在做一个含有CheckBox 的ListView时,发现当初始化CheckBox的状态后, 滚动ListView,其中CheckBox 的选中状态不停的发生变化。最后发现原因是 ListView滚动时自动调用 onCheckedChanged 导致的。在查看了各种博客的解决办法后,国外的网站上有一个办法解决了我的问题。写下来分享一下。
在自定义Adapter的getView方法中这样写就行了。
//在初始化CheckBox状态和设置状态变化监听事件之前,先把状态变化监听事件设置为null
holder.checkBox.setOnCheckedChangeListener(null);
//然后设置CheckBox状态
if(isChecked) {
holder.checkbox.setChecked(true);
} else {
holder.checkbox.setChecked(false);
}
//然后设置状态变化监听事件
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
//...
}else{
//....
}
}
});
在自定义Adapter的getView方法中这样写就行了。
//在初始化CheckBox状态和设置状态变化监听事件之前,先把状态变化监听事件设置为null
holder.checkBox.setOnCheckedChangeListener(null);
//然后设置CheckBox状态
if(isChecked) {
holder.checkbox.setChecked(true);
} else {
holder.checkbox.setChecked(false);
}
//然后设置状态变化监听事件
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
//...
}else{
//....
}
}
});
相关文章推荐
- android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法
- android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法
- android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化
- android ListView/Recyclerview滚动时自动调用onCheckedChanged导致CheckBox状态混乱的解决办法
- listview里面checkbox选中状态乱蹦+滚动listview的时候自动调用 onCheckedChanged 导致CheckBox 状态不停变化
- android ListView/Recyclerview滚动时自动调用onCheckedChanged导致CheckBox状态混乱的解决办法
- android 当ListView滚动时自动调用 onCheckedChanged
- android listview + checkbox 列表上下滑动导致复选框状态丢失解决办法
- android RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次解决办法
- android ListView的Item中有CheckBox,导致OnItemClick不响应的解决办法
- RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次解决办法
- 调用RadioGroup的check(id)方法,监听onCheckedChanged方法被执行多次;调用clearCheck(),onCheckedChanged方法仍被执行的原因和解决办法
- RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次调用解决办法
- RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次解决办法
- 调用RadioGroup的check(id)方法,监听onCheckedChanged方法被执行多次;调用clearCheck(),onCheckedChanged方法仍被执行的解决办法
- android ListView的Item中有CheckBox,导致OnItemClick不响应的解决办法
- Android完美解决ListView复用导致的Checkbox状态混乱问题
- RadioGroup调用setcheck(bool)方法时,onCheckedChanged方法被执行多次解决办法
- Android ListView的Item中有CheckBox,导致OnItemClick不响应的解决办法
- [Android]ListView中包含Checkbox,ToggleButton时Checked状态丢失的问题解决