让我向您展示我的代码的两个例子。
example 1:
@Override
protected void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null){
mCurrentIndex = savedInstanceState.getInt(KEY_INDEX, mCurrentIndex);
};
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
}
示例2:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
if (savedInstanceState != null){
mCurrentIndex = savedInstanceState.getInt(KEY_INDEX, mCurrentIndex);
};
}
我想知道我把它放在哪里无关紧要
if (savedInstanceState != null){
mCurrentIndex = savedInstanceState.getInt(KEY_INDEX, mCurrentIndex);
};
在我的代码中。我的假设是setContentView
显示当前布局,如果更改mCrrentIndex
则不同。因此,如果我首先设置内容视图并且检查mCurrentIndex
具有什么int,那就很重要了。事实证明并非如此,我不知道为什么。谁能解释一下?
答案 0 :(得分:1)
在onCreate
方法中,尚未创建任何视图,它们会在Activity lifecycle的后期阶段被夸大。因此,当它们被加载时,将使用mCurrentIndex
的新值,因为即使您在调用setContentView
之后设置它,它仍然是之前已创建任何视图