2014-04-16 42 views
0

我有一個類似測試的應用程序。有很多單選按鈕和廣播組。
在循環過程中,我將實際測試對象保存在onSaveInstanceState(...)中,然後在onCreateView(...)中恢復此對象。一切工作都完美無瑕。旋轉後,一切都設置好,工作正常。Android使用RadioButtons onClick方法處理片段旋轉

樣品:

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
... 
    if(savedInstanceState != null) 
      mTest = (Test)savedInstanceState.getSerializable(TEST_SAVED); 
     else{ 
      String userId = ""; 
      if (getArguments() != null) { 
       userId = getArguments().getString(PACIENT_ID); 
      } 
      mTest = new Test(userId, "..."); 
     } 
... 
} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putSerializable(TEST_SAVED, mTest); 
} 

我處理直接在XML的單選按鈕的onClick

<RadioButton 
    android:id="@+id/radioButtonOt1Btn1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="8" 
    android:onClick="onRadioButtonClicked" // HERE 
    android:text="10" /> 

但是...當我在任何單選按鈕,然後單擊旋轉後,一切都被設置爲NULL(加載TextViews,EditTexts ..當然我的測試對象)。
所以這個問題顯然在XML onClick方法中出錯了。

有人有什麼建議嗎? :-)謝謝

+0

你的活動和片段重建。你對肖像和風景使用不同的佈局嗎? – Libin

+0

Nop,我爲Portaint和Landscape使用相同的佈局。 – Sandak

+0

在清單中爲您的活動設置android:configChanges =「orientation | screenSize」,以避免在方向更改時重新創建片段 – Libin

回答

0

您的活動和片段在方向更改時重新創建。

您需要設置

android:configChanges="orientation|screenSize" 
清單中

爲您的活動,以避免重新創建片段時,方向改變