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);
}
ProductInfoDescriptionframentを交換するときに、これからビューを再作成できるように保存したいのでBundle、次のようになりonResumeます。
@Override
public void onResume() {
if(SavedString != null){
ProductInfo.setText(Html.fromHtml(SavedString.getString("SavedString")));
}
super.onResume();
}
ResultsList次に、製品のリストを使用して呼び出されるアクティビティがあり、クリックするProductDisplayActivityと、もちろん異なる値を使用して新しいインテント呼び出しを再開します。
問題:
私の問題は、からproduct 1へ、product listそしてへproduct 2とナビゲートしてから、を押してバックナビゲートしようとするとback button、のはBundleのをproduct 1持っているというProductInfoDescriptionことproduct 2です。ProductDisplayActivitynewを呼び出すときに、この問題を解決する方法がわかりnew ProductInfoFragmentません。フラグメントが異なるため、すべてのフラグメントがBundle独自の値を持つべきではありませんか?