[英]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.