【发布时间】:2016-05-11 06:19:09
【问题描述】:
有没有办法检查用户是否检查了CheckBox
private android.widget.CheckBox.OnCheckedChangeListener checkboxListener = new android.widget.CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
更新
我通过实现自定义 CheckBox 类来解决这个问题,该类包装 CheckBox 并保存来自User 的布尔值,还实现了自定义侦听器,并重载 setChecked(boolean checked, boolean fromUser)。
`public class PaCheckBox 扩展 CheckBox {
private static boolean fromUser;
public PaCheckBox(Context context) {
super(context);
}
public PaCheckBox(Context context, AttributeSet attrs) {
super(context, attrs);
}
public PaCheckBox(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void setChecked(boolean checked, boolean fromUser){
setChecked(checked);
PaCheckBox.fromUser = fromUser;
}
@Override
public void setChecked(boolean checked) {
super.setChecked(checked);
PaCheckBox.fromUser = true;
}
@Override
public void setOnCheckedChangeListener(OnCheckedChangeListener listener) {
super.setOnCheckedChangeListener(listener);
}
public static class PaOnCheckBoxChangeListener implements android.widget.CheckBox.OnCheckedChangeListener {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked, boolean fromUser) {
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
onCheckedChanged(buttonView,isChecked,PaCheckBox.fromUser);
}
}
} `
【问题讨论】:
-
您可以使用
checkBox.isChecked();获取检查状态 -
我不想要CheckBox的状态,我想得到如果它是由用户触发的,通过调用SetChecked(),isChecked为真
标签: android checkbox android-checkbox