По моему main.xmlу меня
<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>
И я устанавливаю фрагмент объекта, как это
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new FragmentType1();
fragmentTransaction.replace(R.id.frameTitle, casinodetailFragment, "fragmentTag");
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Он устанавливает разные типы объектов Fragment ( FragmentType2,FragmentType3,...) в разное время. Теперь в какой-то момент мне нужно определить, какой объект в данный момент находится там.
В короткий мне нужно сделать что - то вроде этого:
Fragment currentFragment = //what is the way to get current fragment object in FrameLayout R.id.frameTitle
Я попробовал следующее
TitleFragment titleFragmentById = (TitleFragment) fragmentManager.findFragmentById(R.id.frameTitle);
и
TitleFragment titleFragmentByTag = (TitleFragment) fragmentManager.findFragmentByTag("fragmentTag");
Но оба объекта (titleFragmentById и titleFragmentByTag) -null
Я что-то пропустил?
Я использую Compatibility Package, r3и разрабатываю для API level 7.
findFragmentById()и findFragmentByTag()будет работать, если мы установили фрагмент с помощью fragmentTransaction.replaceили fragmentTransaction.add, но будет, return nullесли мы установили объект в XML (как то, что я сделал в моем main.xml). Я думаю, что чего-то не хватает в моих файлах XML.