在我的基本活動類中,我有鏈接到我從菜單調用的所有片段。如何正確使用片段
事情是這樣的:
BaseFragment mProjects;
BaseFragment mProfile;
public BaseFragment getFragment(FragmentType type) {
BaseFragment fr = null;
switch (type) {
case PROFILE:
fr = new Profile();
break;
case PROJECTS:
fr = new Projects();
break;
default:
return null;
}
return fr;
}
所以,我創建片段從菜單一個時間訪問的實例。好嗎?或者我應該每次創建片段?如果是這樣,那麼我怎樣才能保存片段狀態(數據,位置)?因爲當我從片段管理器使用replace
時,替換片段的onSaveInstanceState
未被調用。所以當我重新打開它時,沒有保存狀態。
順便說一句,我在活動使用onSaveInstanceState
:
@Override
public void onSaveInstanceState(Bundle saveInstanceState) {
// doing things
super.onSaveInstanceState(saveInstanceState);
}
無論如何,如果我不存儲指向片段片段onSaveInstanceState
將永遠不會被調用。所以,我可以在方法中存儲片段的狀態,但它似乎不好解決方案。
UPD:這不是基於意見的問題。應該有使用片段的最佳做法。所以我問這個。
@Override \t公共無效的onSaveInstanceState(捆綁outState){ \t \t super.onSaveInstanceState(outState); //數據保存 } – Suvitruf 2015-02-10 11:14:54
我談論的FragmentActivity,不片段本身 – 2015-02-10 11:17:28
在活動: @覆蓋 \t公共無效的onSaveInstanceState(捆綁saveInstanceState){ \t // smthng保存 \t super.onSaveInstanceState( saveInstanceState); \t} – Suvitruf 2015-02-10 11:18:56