保存碎片状态
问题描述:
我在一个活动中有几个片段。当我在它们之间切换时,我想保存片段的状态。但是活动不会重新创建,并且onSaveInstanceState
不会调用。我可以以某种方式保存包,例如,在?保存碎片状态
答
每次创建新片段时都要使用这样的方法addToBackStack()
。
if (fragment == null) {
fragment = new MyFragmentClass();
manager.beginTransaction()
.add(R.id.your_fragment_id, fragment)
.addToBackStack(null)
.commit();
}
片段将在提交后被记住,并且在稍后弹出堆栈时将反转其操作。
+0
但如果我想要在捆绑包中保存更多数据该怎么办? – sandeor30r
可能重复[一次为所有人,如何正确保存Fragments的实例状态回栈?](https://stackoverflow.com/questions/15313598/once-for-all-how-to-correctly-save -instance-state-of-fragments-in-back-stack) – 0X0nosugar