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方法中出錯了。
有人有什麼建議嗎? :-)謝謝
你的活動和片段重建。你對肖像和風景使用不同的佈局嗎? – Libin
Nop,我爲Portaint和Landscape使用相同的佈局。 – Sandak
在清單中爲您的活動設置android:configChanges =「orientation | screenSize」,以避免在方向更改時重新創建片段 – Libin