我在一個片段內開發了一個遊戲。涉及許多觀點,甚至更多變數。現在我需要一個恢復按鈕,我想將堆棧中的洞碎片保存起來,當按下回覆按鈕時,我只彈出最後一個碎片並將其替換。在堆棧中保存一個片段的副本以恢復狀態
我的問題是,此堆棧中的任何片段都會更新,因爲用戶界面中發生了一些情況。但是,我需要保存片段的過去狀態。所以它應該被凍結或什麼?那麼我怎樣才能做一個實際的副本,而不是更新的副本。
保存方法
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