我在做什么 ::
- 我加载一个片段(
eg:: Fragment-A
)到容器中,并在onSaveInstanceState
事件我将一些数据存储到捆绑包中
我使用代码
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("yourSpinner", spnSearchByCity.getSelectedItemPosition());
}
- Now i
replace
the container
with Fragment-B
单击按钮时
在Fragment-A
我使用代码
fragment = FrgMdMap.newInstance(messengerObj);
if (fragment != null) {
getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).addToBackStack(null).commit();
}
问题::
- 这是怎么发生的?
- 我怎样才能确保这种情况不会发生?
How is this taking place ?
实际上Fragment-A
还活着,就在你的下面Fragment-B
这是由于addToBackStack(null)
替换片段时添加的。
How can i make sure this wont happen ?
您可以删除addToBackStack(null)
或者计算你的碎片中堆叠的碎片数量onSaveInstanceState
方法,当它为 0 时,您可以在您的内部运行代码onSaveInstanceState
EDIT:
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
FragmentManager fm = getActivity().getSupportFragmentManager();
if(fm.getBackStackEntryCount() == 0)
outState.putInt("yourSpinner", spnSearchByCity.getSelectedItemPosition());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)