如何找到片段的ID?或者,如何为片段提供ID?

时间:2013-11-29 10:15:55

标签: android findviewbyid

(首先,我知道这个问题已被多次询问,但我没有找到适用的答案)

我创建了一个片段:

inflater.inflate ( R.layout.fragment_task_ongoing, container, false );

我想要的是在FragmentActivity中使用findFragmentById,如下所示:

TaskActiveFragment f = ( TaskActiveFragment ) getSupportFragmentManager ().findFragmentById ( R.id.fragment_task_ongoing );

不幸的是,这会返回null。明显的原因是用作参数的id是RelativeLayout被膨胀的id,而不是Fragment。布局的第一行:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_task_ongoing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp" >

那么,我如何找出片段的ID?如果它没有ID,我该如何给它?编程方式? XML?

编辑:我的片段被添加到FragmentStatePagerAdapter,然后将其添加到ViewPager。

1 个答案:

答案 0 :(得分:5)

如果您保留对FragmentStatePagerAdapter和视图中片段索引的引用,则可以在FragmentStatePagerAdapter上调用getItem(int position),这将返回片段。