Di saya main.xml
miliki
<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, r3
dan mengembangkan untuk API level 7
.
findFragmentById()
dan findFragmentByTag()
akan bekerja jika kita telah menetapkan fragmen menggunakan fragmentTransaction.replace
atau fragmentTransaction.add
, tetapi akan return null
jika 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.