我已经为我的checkbox
实现了setOnCheckedChangeListener
个
有没有办法我可以打电话给你?
checkbox.setChecked(false);
不触发onCheckedChanged
我已经为我的checkbox
实现了setOnCheckedChangeListener
个
有没有办法我可以打电话给你?
checkbox.setChecked(false);
不触发onCheckedChanged
不,你不能这么做.onCheckedChanged
方法直接从setChecked
调用.你可以做以下几点:
mCheck.setOnCheckedChangeListener (null);
mCheck.setChecked (false);
mCheck.setOnCheckedChangeListener (mListener);
参见source of CheckBox和setChecked
的实施:
public void setChecked(boolean checked) {
if (mChecked != checked) {
mChecked = checked;
refreshDrawableState();
// Avoid infinite recursions if setChecked() is called from a listener
if (mBroadcasting) {
return;
}
mBroadcasting = true;
if (mOnCheckedChangeListener != null) {
mOnCheckedChangeListener.onCheckedChanged(this, mChecked);
}
if (mOnCheckedChangeWidgetListener != null) {
mOnCheckedChangeWidgetListener.onCheckedChanged(this, mChecked);
}
mBroadcasting = false;
}
}