Я хочу изменить состояние дочерних переключателей от родительского переключателя.
вкратце:
Случай 1: Родитель включен -> все Дочерние элементы включены
случай 2: Родитель выключен -> все дочерние элементы выключены
случай 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()
частная пустота setState () {
if (switchChild1.isChecked() || switchChild2.isChecked() || switchChild3.isChecked()) {
switchParent.setChecked(true);
} else {
switchParent.setChecked(false);
}
}
Я буду признателен за любую помощь.