【发布时间】:2016-01-22 14:40:45
【问题描述】:
我想从父开关更改子开关的状态。
简而言之:
案例 1:Parent 开启 -> 所有 Child 开启
案例 2:Parent 关闭 -> 所有 Child 关闭
案例 3:子 2 关闭(子 1 和 3 开启)-> 父开启
问题 当我打开/关闭所有子开关时,父开关应相应地打开/关闭。
下面是我的代码 在代码案例 1,2 和 3 中工作正常。
switchParent.setOnCheckedChangeListener(新 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()
private void setState() {
if (switchChild1.isChecked() || switchChild2.isChecked() || switchChild3.isChecked()) {
switchParent.setChecked(true);
} else {
switchParent.setChecked(false);
}
}
我将不胜感激。
【问题讨论】:
标签: android switchcompat