如何在android中保存布局的实例状态

如何在android中保存布局的实例状态,android,android-layout,onsaveinstancestate,Android,Android Layout,Onsaveinstancestate,我有一个活动和5个布局。 在onCreate中,我为起始页布局设置ContentView,然后通过按钮跳到另一个布局。旋转屏幕时出现问题。它返回到起始页。当我旋转屏幕时,我必须做什么才能保持相同的布局? 这是我在onCreate中的内容: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV

我有一个活动和5个布局。 在onCreate中,我为起始页布局设置ContentView,然后通过按钮跳到另一个布局。旋转屏幕时出现问题。它返回到起始页。当我旋转屏幕时,我必须做什么才能保持相同的布局? 这是我在onCreate中的内容:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(**R.layout.activity_main**);
单击开始按钮,进入第一种方法:

public void firstQuestion(View view) {
    //here we change the layout. it will be the same for every new question
    setContentView(**R.layout.first_question**);
…一些代码,然后

 final ImageView forward = (ImageView) findViewById(R.id.forward);
    forward.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (time_is_up) resultsDialog(view);//if time is up we jump to results
            else secondQuestion(view);          //if not we skip to the next question
        }
    });
第二个问题:

public void secondQuestion(View view) {
    setContentView(**R.layout.second_question**);

依此类推。

您可以保存上一个活动状态,并在重新创建活动时重新使用它:

int layoutId = R.layout.activity_main;

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

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        layoutId = savedInstanceState.getInt("layoutId", R.layout.activity_main);
    }
    setContentView(layoutId);
}

public void firstQuestion(View view) {
    layoutId = R.layout.first_question;
    setContentView(layoutId);
}

使用
ViewFlipper可能会更好-