【发布时间】:2013-11-29 10:15:54
【问题描述】:
(首先,我知道这个问题已经被问过很多次了,但我还没有找到合适的答案)
我有一个这样创建的片段:
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" >
那么,我如何找出 fragment 的 ID 是什么?如果它没有身份证,我如何给它一个?以编程方式? XML?
编辑:我的片段被添加到 FragmentStatePagerAdapter,然后被添加到 ViewPager。
【问题讨论】:
-
答案可以在这里找到。 stackoverflow.com/q/9363072/827110
-
我看不出答案是如何适用的。似乎假设片段以与我不同的方式添加,使用 FragmentTransaction.add()。
-
以及如何将片段添加到 Activity 布局中?
-
通过 FragmentStatePagerAdapter 到 ViewPager。
-
片段 ID 不是片段本身的一部分。您要查找的 id 是容器的 id。
标签: android findviewbyid