gpt4 book ai didi

android - 前一个 fragment 的 onSaveInstanceState 调用当前 fragment 的 on-orientation

转载 作者:行者123 更新时间:2023-11-29 00:18:19 24 4
gpt4 key购买 nike

我在做什么::

  • 我将一个 fragment (例如::Fragment-A)加载到容器中,并在onSaveInstanceState 事件我正在将一些数据存储到包中

我使用代码

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);

outState.putInt("yourSpinner", spnSearchByCity.getSelectedItemPosition());

}
  • 现在我在点击按钮时用 Fragment-B replace containerFragment-A

我使用代码

fragment = FrgMdMap.newInstance(messengerObj);

if (fragment != null) {
getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).addToBackStack(null).commit();
}
  • 我能够成功加载 Fragment-B

  • 现在 Fragment-B 的方向改变 onSaveInstanceStateFragment-A id 触发


问题::

  • 这是怎么发生的?
  • 我怎样才能确保这种情况不会发生?

最佳答案

How is this taking place ?

实际上 Fragment-A还活着,在你的下面很好 Fragment-B这是由于 addToBackStack(null)替换 fragment 时添加。

How can i make sure this wont happen ?

您可以删除 addToBackStack(null)或计算 onSaveInstanceState 中堆叠 fragment 的数量方法,当它为 0 时,您可以在 onSaveInstanceState 中运行代码

编辑:

public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
FragmentManager fm = getActivity().getSupportFragmentManager();
if(fm.getBackStackEntryCount() == 0)
outState.putInt("yourSpinner", spnSearchByCity.getSelectedItemPosition());

}

关于android - 前一个 fragment 的 onSaveInstanceState 调用当前 fragment 的 on-orientation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858421/

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