复选框通常单独使用,每个复选框都注册了一个单独的点击监听器。 Android 指南也有同样的规定。你可以在https://developer.android.com/guide/topics/ui/controls/checkbox.html看到。
但是,如果您有需要使用它们的场景,则必须创建一个使用逻辑来自己处理它。 Checkbox 有一个方法 setChecked(boolean) 可用于设置状态:如果您希望它被选中,则为 true,未选中状态为 false。
您可以附加一个侦听器来检查更改是否为检查。
checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
}
});
将单独的侦听器附加到每个复选框。当一个复选框的检查状态发生变化时,对其他复选框进行相应的更改。
checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
checkbox2.setChecked(false);
checkbox3.setChecked(false);
}
}
});
checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
checkbox1.setChecked(false);
checkbox3.setChecked(false);
}
}
});
checkbox3.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
checkbox1.setChecked(false);
checkbox2.setChecked(false);
}
}
});
如果您需要用户只能选择其中一个选项,您可以使用单选按钮并使用单选组。
广播组:
https://developer.android.com/reference/android/widget/RadioGroup.html