3

Мне нужно обновить текстовое представление из списка, который находится на одной плоскости в XML-файле в виде TextView. Но оба Trys просто возвращает нуль:Не удается получить родительский вид из фрагмента

@Override 
public void onCreate(Bundle ice) 
{ 
    super.onCreate(ice); 

    ... 

    mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.entry_row, null, from, to, 0); 
    setListAdapter(mAdapter); 

    mTextView = (TextView) getActivity().findViewById(R.id.tv); // try #1 

    mPercentView = (TextView) ((ViewGroup)getView().getParent()).findViewById(R.id.tv); //try #2 
    // (not tested at the same time) 
} 

Это XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 


<TextView 
    android:id="@+id/info_log_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:padding="@dimen/object_padding" 
    android:textSize="24sp" 
    android:textIsSelectable="true" /> 

<fragment 
    android:id="@+id/view_log_fragment" 
    android:name="fragment name..." 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/info_log_view" /> 

</RelativeLayout> 

Спасибо!

ответ

0

Постарайся это

mPercentView = (TextView) ((ViewGroup)getActivity().getParent()).findViewById(R.id.tv); 

или

mPercentView = (TextView)getView().getParent().findViewById(R.id.tv); 
+0

Все еще возвращает null ... но у меня есть взлом в создании, который может просто работать. – Lonecoder13

+4

Ухаживать за взломом? –

3

это решило мою проблему надеюсь, что это поможет вам тоже: так переопределить класс onActivityCreated и в нем писать код ниже:

View myActivityView=(RelativeLayout)getActivity().findViewById(R.id.parentContainer); 

Обратите внимание, что RelativeLayout - это мой основной макет, содержащий Textv МЭН. , когда у вас есть это в вашем фрагменте вы имеете доступ к фрагмент родительского вида, и теперь просто нужно, чтобы получить представление текста с помощью кода ниже:

TextView myTextView=(TextView)myActivityView.findViewById(R.id.myTextView); 

надежду, что эта помощь.

0

Я аналогичная проблема, я нашел решение, используя getRootView() на onCreateView() в файле Фрагмент Java

=(thecasting)view.getRootView().findViewById(R.id.theid) 
1

ViewGroup parentLayout = ((ViewGroup) GetView() GetParent().);

Смежные вопросы