在我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();
它FragmentType2,FragmentType3,...
在不同的时间设置不同类型的Fragment对象()。现在在某个时间点,我需要确定当前存在哪个对象。
在短,我需要做这样的事情:
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,则可以使用(就像我在my中所做的一样main.xml
)。我认为我的XML文件中缺少某些内容。
相关-stackoverflow.com/a/21104084/80428
—
杰伊·威克
@CommonsWare回答是否对您有所帮助,因为我仍然会得到null?
—
IntoTheDeep,2016年