私の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ファイルに何か欠けていると思います。