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();
}
ResultsList
次に、製品のリストを使用して呼び出されるアクティビティがあり、クリックするProductDisplayActivity
と、もちろん異なる値を使用して新しいインテント呼び出しを再開します。
問題:
私の問題は、からproduct 1
へ、product list
そしてへproduct 2
とナビゲートしてから、を押してバックナビゲートしようとするとback button
、のはBundle
のをproduct 1
持っているというProductInfoDescription
ことproduct 2
です。ProductDisplayActivity
newを呼び出すときに、この問題を解決する方法がわかりnew ProductInfoFragment
ません。フラグメントが異なるため、すべてのフラグメントがBundle
独自の値を持つべきではありませんか?