我在一个片段内开发了一个游戏。涉及许多观点,甚至更多变数。现在我需要一个恢复按钮,我想将堆栈中的洞碎片保存起来,当按下回复按钮时,我只弹出最后一个碎片并将其替换。在堆栈中保存一个片段的副本以恢复状态
我的问题是,此堆栈中的任何片段都会更新,因为用户界面中发生了一些情况。但是,我需要保存片段的过去状态。所以它应该被冻结或什么?那么我怎样才能做一个实际的副本,而不是更新的副本。
保存方法
Fragment fragment = fragmentManager.findFragmentById(R.id.container);
MainActivity.fragmentStack.push(fragment);
加载方法
Fragment fragment = MainActivity.fragmentStack.pop();
ActionBarActivity ac = (ActionBarActivity) root.getContext();
FragmentManager fragmentManager = ac.getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
P.S:当然,我可以一个新片段随时随地存储所有的单变量在构建与存储的值。但是,我希望将整体存储在一个片段中。
那么是什么阻止你制作你的片段的深层副本?在您的类中添加一个构造函数,将另一个片段作为参数,创建所有引用变量的副本等。但是,如果您想要一个比第一个答案更真实的解决方案,那么这是一个非常好的方法。 – AndroidEx