我相信,如果你可以做一個類parcelable你可以在同一個OnsaveInstanceState
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
try
{
outState.putParcelable("ListViewFragment", (Parcelable) mLeftMenuFragment);
outState.putParcelable("ProductsGridFragment", (Parcelable) mProductsGridFragment);
outState.putParcelable("ProductDetailsFragment", (Parcelable) mProductDetailsFragment);
outState.putParcelable("FeaturedFragment", (Parcelable) mFeaturedFragment);
outState.putParcelable("CategoryFragment", (Parcelable) mCategoryFragment);
}
catch(Exception e)
{
mLogger.error(Logger.ERROR_CODE_API, e);
}
}
相同存儲爲下面讓他們回來如下
if(savedInstanceState != null)
{
isFeaturedProduct = savedInstanceState.getBoolean("IsFeaturedProduct");
mLeftMenuFragment = (LeftMenuFragment) savedInstanceState.getParcelable("ListViewFragment");
mProductsGridFragment = (ProductListFragment) savedInstanceState.getParcelable("ProductsGridFragment");
mProductDetailsFragment = (ProductDetailsFragment) savedInstanceState.getParcelable("ProductDetailsFragment");
if(isFeatured)
mFeaturedFragment = (FeaturedFragment) savedInstanceState.getParcelable("FeaturedFragment");
else
mCategoryFragment = (CategoryFragment) savedInstanceState.getParcelable("CategoryFragment");
// mActionBar.setTitle(savedInstanceState.getString("ActionBarTitle"));
}
else
{
mLeftMenuFragment = new LeftMenuFragment();
mProductsGridFragment = new ProductListFragment();
mProductDetailsFragment = new ProductDetailsFragment();
if(isFeatured)
{
mFeaturedFragment = new FeaturedFragment();
}
else
{
mCategoryFragment = new CategoryFragment();
}
mIsFeaturedClicked = true;
}
謝謝您的回答。我忘了提及我已經嘗試parceable,但它仍然看起來像一個相當繁瑣的方法,我必須使每個自定義數據類型parceable。 真的沒有其他辦法嗎?我的意思是,不是定向改變的慣例?! – deimos1988