回答

1
@Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt("curChoice", mCurCheckPosition); 
    } 

,你以後可以使用這樣的:

@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    if (savedInstanceState != null) { 
      // Restore last state for checked position. 
      mCurCheckPosition = savedInstanceState.getInt("curChoice", 0); 
     } 
} 
+1

對不起,我的意思是,如果系統可以恢復所有視圖。但我認爲你的解決方案可能是最接近的。 – 2013-03-01 23:12:12

1

也許我知道是什麼問題。希望我的回答有助於某人想要解決這個問題。 如果有你的活性的片段,你的配置在AndroidManifest.xml該活動與

android:configChanges="keyboardHidden|orientation|screenSize" 

那麼,要更改活動的佈局時觸發onConfigurationChanged。一旦活動膨脹一個新的佈局或使用setContentView(R.layout.new_layout);,片段將消失,但是,該片段仍在運行,並從視圖中消失。

所以問題是,片段連接到以前的佈局,你需要做什麼:

FragmentManager fm = getSupportFragmentManager(); 
FragmentTransaction transaction = fm.beginTransaction(); 
if (fm.findFragmentById(R.id.pane_list) == null) { 
    // instantiate fragment and add to view 
    mFragment = new ItemFragment(); 
    transaction.add(R.id.pane_list, mFragment); 
} else { 
    // fragment already exists, we re-attahced it 
    mFragment = fm.findFragmentById(R.id.pane_list); 
    transaction.detach(mFragment); 
    transaction.attach(mFragment); 
} 
transaction.commit(); 

從舊佈局卸下並安裝到新的佈局,解決問題後。如果有任何錯誤:)

+1

android:configChanges不被Google工程師推薦。 – 2013-08-19 14:14:37