我想从父开关更改子开关的状态。
简单来说:
案例 1:父级开启 -> 所有子级开启
案例 2:父关闭 -> 所有子关闭
案例 3:孩子 2 关闭(孩子 1 和 3 开)-> 父母开
问题当我打开/关闭所有子开关时,父开关应相应地打开/关闭。
下面是我在代码案例 1,2 和 3 中工作正常的代码。
switchParent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
switchChild1.setChecked(true);
switchChild2.setChecked(true);
switchChild3.setChecked(true);
} else {
switchChild1.setChecked(false);
switchChild2.setChecked(false);
switchChild3.setChecked(false);
}
}
}); switchChild1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
setState();
}
});
switchChild2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
setState();
}
});
switchChild3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
setState();
}
});
设置状态()
私人无效 setState() {
if (switchChild1.isChecked() || switchChild2.isChecked() || switchChild3.isChecked()) {
switchParent.setChecked(true);
} else {
switchParent.setChecked(false);
}
}
我将不胜感激。