我有一個叫做ProductDisplayActivity
的活動,裏面有一個片段。這個片段被我的活動onCreate
方法創建這樣的:捆綁值覆蓋
ProductInfoFrag = new ProductInfoFragment();
ProductInfoFragmentListener = (ProductRetrieveInfoInterface) ProductInfoFrag;
FragmentTransaction InitialTransaction = fm.beginTransaction();
InitialTransaction.add(R.id.product_info_frame, ProductInfoFrag);
InitialTransaction.commit();
在片段,通過一個接口,我調用這個函數:
@Override
public void DownloadProductInfo(String ProductInfoDescription) {
ProductInfo.setText(Html.fromHtml(ProductInfoDescription));
SavedString = new Bundle();
SavedString.putString("SavedString", ProductInfoDescription);
}
我想保存ProductInfoDescription
這樣,當替換frament我可以重新創建從該Bundle
視圖,所以在onResume
我有:
@Override
public void onResume() {
if(SavedString != null){
ProductInfo.setText(Html.fromHtml(SavedString.getString("SavedString")));
}
super.onResume();
}
然後我甲肝e帶有產品清單的名爲ResultsList
的活動,點擊後我開始新的意向再次呼叫ProductDisplayActivity
,當然不同的值。
問題:
我的問題是,如果我從product 1
導航到product list
的然後product 2
,然後嘗試回導航按下back button
的product 1
的Bundle
有product 2
的ProductInfoDescription
。 我不知道如何解決這個問題,當調用一個新的ProductDisplayActivity
,然後new ProductInfoFragment
不應該每個片段都有自己的Bundle
自己的值,因爲是不同的片段?
'但表示用通過開展活動片段新意圖不是我想象的最好主意。「你能解釋一下爲什麼嗎?此外,該列表不是一個片段,而是一個活動,正如我在我的問題中所寫的,我從「產品活動」導航到「列表活動」,然後再次導航到「產品活動」。 – 2013-03-19 12:10:33
只需很少的工作,您就可以通過在佈局中封裝碎片來適應多個屏幕。你不能真正把兩個不同的活動放在一起。 FragmentManager類使它更容易。通過將一個片段放入不同的活動中,您正在限制自己,因爲片段被設計爲模塊化並具有自己的生命週期。 – 2013-03-20 13:02:08