Да, это возможно.Я думаю, что самый простой способ сделать это через слушателя / обратный вызов.
Прежде всего, создайте свой класс слушателя:
public interface MyCallback {
void onSwitchStateChanged(boolean isChecked);
}
После этого, заставьте вашу Activity реализовать этот интерфейс, иРеализуйте логику смены фона в методе onSwitchStateChanged
.
Теперь, внутри метода onAttach()
вашего Фрагмента, сделайте следующее (этот пример на Kotlin):
override fun onAttach(context: Context?) {
super.onAttach(context)
if (context is MyCallback) {
myListener = context as MyCallback
}
else {
throw RuntimeException("Must implement MyCallback!")
}
}
Где myListener
- это переменная внутри вашего фрагмента.
Теперь добавьте setOnCheckedChangeListener
на вашем коммутаторе, как это описано в в этом ответе , и используйте обратный вызов внутри него.Например (на Java):
mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
myListener.onSwitchStateChanged(isChecked);
}
});