In meinem main.xml
habe ich
<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>
Und ich setze ein Fragmentobjekt wie dieses
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new FragmentType1();
fragmentTransaction.replace(R.id.frameTitle, casinodetailFragment, "fragmentTag");
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Es werden verschiedene Arten von Fragmentobjekten ( FragmentType2,FragmentType3,...
) zu unterschiedlichen Zeiten festgelegt. Jetzt muss ich irgendwann herausfinden, welches Objekt gerade dort ist.
In kurzen brauche ich so etwas wie dies zu tun:
Fragment currentFragment = //what is the way to get current fragment object in FrameLayout R.id.frameTitle
Ich habe folgendes versucht
TitleFragment titleFragmentById = (TitleFragment) fragmentManager.findFragmentById(R.id.frameTitle);
und
TitleFragment titleFragmentByTag = (TitleFragment) fragmentManager.findFragmentByTag("fragmentTag");
Aber beide Objekte (titleFragmentById und titleFragmentByTag) sindnull
Haben ich etwas verpasst?
Ich benutze Compatibility Package, r3
und entwickle für API level 7
.
findFragmentById()
und findFragmentByTag()
wird funktionieren, wenn wir Fragment mit fragmentTransaction.replace
oder gesetzt haben fragmentTransaction.add
, aber return null
wenn wir das Objekt auf xml gesetzt haben (wie das, was ich in meinem getan habe main.xml
). Ich glaube, ich vermisse etwas in meinen XML-Dateien.