Я switchCompat.setChecked(true)
в преобразования приложений на onViewCreated(...)
из Фрагмент .Это хорошо работает в первый раз, но не работает после того, как вернулся из BackStack.
Бревно показывает, что switchCompat.isChecked()
является истинным, но состояние ПИ SwitchCompat является off.It настолько Strage, что Parms названного IsChecked из onCheckedChanged в OnCheckedChangeListener также ложных.
Может ли кто-нибудь сказать мне, почему?Android Почему switchCompat.setChecked (правда) не работает после того, как вернулся из BackStack
Обломок
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
......other code......
initialSnooze();
}
private void initialSnooze() {
mSwitchSnooze.setChecked(mAlarm.isSnooze());
Log.d("TAG", "initialSnooze: "+mAlarm.toString()+" "+mSwitchSnooze.isChecked());
}
Переход к следующей Fragemnt
private void switchFragment(Fragment fragment,String tag){
FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction();
fragmentTransaction.addToBackStack(tag);
fragmentTransaction.replace(android.R.id.content, fragment, tag);
fragmentTransaction.commit();
}
кнопка
спина к спине от BackStack
@Override
public void onBackPressed() {
//回退栈中有Fragment
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
} else {
getSupportFragmentManager().popBackStack();
}
}
** Во втором фрахте **
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mAlarm = getArguments().getParcelable(PARAM_ALARM);
}
mAlarm.setSnooze(true);
}
Можем ли мы видеть код, который вы пытаетесь? – pRaNaY
Опубликуйте свой код. –
Я отправил код @jaydroider – zys