在我的应用程序中,每个活动和文件中都有onSaveInstanceState
个,现在在阅读this link创建Parcelable
类之后,我无法使用它并保存到此类中
默认onSaveInstanceState
是:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean("IsShowingExitDialogs", mIsShowingExitDialogs);
savedInstanceState.getInt("LastMenuItemSelected", mLastMenuItemSelected);
}
现在我无法使用以下行将IsShowingExitDialogs
或LastMenuItemSelected
保存到Parcable类:
savedInstanceState.putParcelable("IsShowingExitDialogs", mIsShowingExitDialogs);
savedInstanceState.putParcelable("IsShowingExitDialogs", mLastMenuItemSelected);
答案 0 :(得分:5)
Parcelable
是在类上应用的接口。它适用于对象,而在您的情况下,您尝试保存整数和布尔,两者都是基元类型。如果你真的想这样做,你需要将它们包装在一个实现Parcelable
的类中。然后这将有效。
修改强>
1。当savedInstanceState
为onSavedInstanceState()
时,onCreate()
中{<1}}会在Activity
中返回<{1}}重新创建,允许您重复使用先前保存的数据。
2。您需要创建自定义类MyClass extends Parcelable
,实现接口方法并将其保存为:
MyClass myClass = new MyClass(mIsShowingExitDialogs, mLastMenuItemSelected);
savedInstanceState.putParcelable("myClass", myClass);