Android TextView onRestoreInstanceState получить неправильное значение
Мой код такой:
@Override
public Parcelable onSaveInstanceState() {
Parcelable superState = super.onSaveInstanceState();
SavedState savedState = new SavedState(superState);
savedState.progress = mProgress;
return savedState;
}
@Override
public void onRestoreInstanceState(Parcelable state) {
SavedState savedState = (SavedState) state;
mProgress = savedState.progress;
super.onRestoreInstanceState(savedState.getSuperState());
}
mProgress
значение 60, когда я передаю его savedState
в onSaveInstanceState
и я получаю 0 в onRestoreInstanceState
,
если я изменю код savedState.mProgress = mProgress
в onSavedInstanceState
в savedState.mProgress = 10
тогда я получил 10 в onRestoreInstanceState
,
Это так странно. если я сделаю mProgress
тогда я получаю 60. Я не знаю, в чем дело.
1 ответ
Используйте как это,
@Override
protected void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null) {
mProgress = savedInstanceState.getInt("progress");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("progress", mProgress);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
mProgress = savedInstanceState.getInt("progress");
}
}