3

我需要更新與TextView在XML文件中同一平面上的ListFragment的textview。 但兩者改掉只是返回null:無法從片段獲取父視圖

@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是我的主Layout包含Textv IEW。 當你有這個在你的片段,你可以訪問您的片段父視圖,現在只需要通過下面的代碼來獲取文本視圖:

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

希望這有助於。

0

我一個類似的問題,我在片段的java文件中找到使用getRootView()溶液上onCreateView()

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

的ViewGroup parentLayout =((的ViewGroup)getView()的getParent());

相關問題