Di saya main.xmlmiliki
<FrameLayout
android:id="@+id/frameTitle"
android:padding="5dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@drawable/title_bg">
<fragment
android:name="com.fragment.TitleFragment"
android:id="@+id/fragmentTag"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</FrameLayout>
Dan saya mengatur objek fragmen seperti ini
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new FragmentType1();
fragmentTransaction.replace(R.id.frameTitle, casinodetailFragment, "fragmentTag");
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Ini mengatur berbagai jenis objek Fragmen ( FragmentType2,FragmentType3,...) pada waktu yang berbeda. Sekarang di beberapa titik waktu saya perlu mengidentifikasi objek mana yang saat ini ada.
Dalam singkat saya perlu melakukan sesuatu seperti ini:
Fragment currentFragment = //what is the way to get current fragment object in FrameLayout R.id.frameTitle
Saya mencoba yang berikut ini
TitleFragment titleFragmentById = (TitleFragment) fragmentManager.findFragmentById(R.id.frameTitle);
dan
TitleFragment titleFragmentByTag = (TitleFragment) fragmentManager.findFragmentByTag("fragmentTag");
Tetapi kedua objek (titleFragmentById dan titleFragmentByTag) adalahnull
Apakah saya melewatkan sesuatu?
Saya menggunakan Compatibility Package, r3dan mengembangkan untuk API level 7.
findFragmentById()dan findFragmentByTag()akan bekerja jika kita telah menetapkan fragmen menggunakan fragmentTransaction.replaceatau fragmentTransaction.add, tetapi akan return nulljika kita telah menetapkan objek di xml (seperti apa yang telah saya lakukan di saya main.xml). Saya pikir saya kehilangan sesuatu di file XML saya.