gpt4 book ai didi

Android 为什么从 BackStack 返回后 switchCompat.setChecked(true) 不工作

转载 作者:搜寻专家 更新时间:2023-11-01 08:35:06 24 4
gpt4 key购买 nike

我在 FragmentonViewCreated(...) 中执行了 switchCompat.setChecked(true)。它第一次运行良好但不是从 BackStack 返回后工作。

日志显示 switchCompat.isChecked()true,但是 SwitchCompat 的 UI 状态是关闭的,很奇怪OnCheckedChangeListeneronCheckedChanged的参数isChecked也是false

谁能告诉我为什么?

fragment

  @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());
}

切换到下一个 fragment

 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();
}
}

**在第二个 fragment 中**

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mAlarm = getArguments().getParcelable(PARAM_ALARM);
}
mAlarm.setSnooze(true);
}

最佳答案

调用initialSnooze();在 onResume() 中

关于Android 为什么从 BackStack 返回后 switchCompat.setChecked(true) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37383921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com