По моему 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.