は、ここに私のユースケースである:異なるフラグメント間でAndroidフラグメントインスタンスを再利用するにはどうすればよいですか?
私はActionBar Navigation Tabsを使用して3つのタブを作成する必要があり、私はこれを達成するためにActionBarSherlockを使用しています。 3つのタブのそれぞれは、それ自身のFragmentです。しかし、各タブ(私の場合は製品のタイトル、説明)に表示される共通の情報があります。私はこの共通の情報のために別のフラグメントを作成しましたが、thisのようなメインのフラグメントレイアウトのそれぞれでこのフラグメントを参照しています。私が取得し、共通の情報を表示するフラグメントのインスタンスを再利用したい
:
は、ここに私の問題です。私は以下のコードを使用していますが、常にメインフラグメントのそれぞれに共通フラグメントの新しいインスタンスを作成するようです。
FragmentManager fm = getFragmentManager();
f = (ProductDetailsInfoFragment) fm.findFragmentByTag("prodinfo");
if (f == null) {
Log.d(TAG, "fragment not found...creating new instance");
f = new ProductDetailsInfoFragment();
f.setTargetFragment(this, 0);
fm.beginTransaction().replace(R.id.prod_info_fragment, f, "prodinfo").commit();
}
フラグメントの同じインスタンスを再利用することはできません。新しいフラグメントを作成して別のフラグメントで使用する必要があります。 –
ええ、それは私が恐れていたものです。私は、データを複数回は取得しないように、キャッシュの一部にロジックを追加する必要があると思います。 – Sanjeev