Android 从XML中框架布局定义的片段获取子视图

Android 从XML中框架布局定义的片段获取子视图,android,android-fragments,Android,Android Fragments,我有一个编辑文本“名称”。 它是在嵌套片段中定义的。 因此,视图层次结构是Activity A->Fragment intFrag->ChildFragment->EditText 我需要片段F中edittext的ID My layout for intFrag.xml has: <FrameLayout android:id="@+id/container" android:layout_width="wrap_content"

我有一个编辑文本“名称”。 它是在嵌套片段中定义的。 因此,视图层次结构是Activity A->Fragment intFrag->ChildFragment->EditText

我需要片段F中edittext的ID

My layout for intFrag.xml has:
       <FrameLayout
        android:id="@+id/container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

which was replaced by the Fragment Manager
******好吧,我想了一件事:我仍然不确定有什么解释,所以如果有人能解释一下,那会很有帮助:

如果我在OnStart中使用相同的代码,edittext的ID将获得一个值。我的碎片事务是在OnCreateView中完成的。我本以为我能够在onActivityCreated中获得视图的引用。还是错了?

试试看

    e= (EditText) v.findViewById(R.id.edittext);

如果您试图从嵌套片段访问子视图,我建议您不要这样做。我认为在本例中,在子片段创建视图之前,会为intFrag片段调用onActivityCreated。onActivityCreated在onCreateView之后调用,但仅针对当前片段而不是子片段


理想情况下,您的子片段将具有设置或从EditText获取所需信息的方法,您可以根据需要使用这些方法,而不是尝试直接访问和存储视图。

不,这不起作用,我已经尝试过了。我想知道我是否以错误的方式访问了片段,因为它是activity.ooh布局文件中的一个框架,在这种情况下,您必须创建一个新的布局文件,并将片段的布局设置为该布局文件。您不能将mainactivity替换为其自身布局的子项。您是对的。我将补充这个答案。。。我可以访问为子片段创建的onActivityCreated中的子视图,这就是代码的位置。
    e= (EditText) v.findViewById(R.id.edittext);