簡體   English   中英

如何在android中保存布局的實例狀態

[英]How to save instance state of a Layout in android

我有一個活動和5個布局。 在onCreate我setContentView的起始頁面布局,然后通過一個按鈕我跳到另一個布局。 當我旋轉屏幕時出現問題。 它返回到起始頁面。 旋轉屏幕時我該怎么做才能保持相同的布局? 這就是我在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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM