簡體   English   中英

從XML框架布局定義的片段中獲取子視圖

[英]Getting child view from a fragment defined by a frame layout in XML

我有一個EditText'名稱'。 它是在嵌套片段中定義的。 因此視圖層次結構是活動A->片段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

這段代碼似乎為我提供了'v'中幀的ID,但是我仍然無法獲得子EditText嗎? 關於我在做什么錯的任何想法嗎? 注意:我在片段F的onActivityCreated()方法中得到一個空值

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

******好的,我想到了一些東西:(我仍然不確定解釋,所以如果有人可以解釋會有所幫助):

如果我在OnStart()中使用相同的代碼,則edittext的ID將獲得一個值。 我的FragmentTransaction是在OnCreateView中完成的。 我以為我可以在onActivityCreated中獲得對視圖的引用。 還是錯了?

嘗試

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

如果您嘗試從嵌套片段訪問子視圖,則建議不要這樣做。 我認為在這種情況下,在子片段完成創建其視圖之前,將為intFrag片段調用onActivityCreated。 onActivityCreated()在onCreateView()之后調用,但僅適用於當前片段,而不適用於子片段。

理想情況下,您的子片段應具有方法來設置或從EditText中獲取所需的任何信息,並且您將根據需要使用它們,而不是嘗試直接訪問和存儲視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM