Java Android在Parcelable类对象中保存活动状态
在我的应用程序中,我在每个活动和文件中都有许多Java Android在Parcelable类对象中保存活动状态,java,android,parcelable,parcel,Java,Android,Parcelable,Parcel,在我的应用程序中,我在每个活动和文件中都有许多onSaveInstanceState,现在在阅读创建Parcelable类后,我无法使用该类并保存到该类中 SaveInstanceState的默认值为: @Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); savedInstanceState.put
onSaveInstanceState
,现在在阅读创建Parcelable
类后,我无法使用该类并保存到该类中
SaveInstanceState的默认值为:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean("IsShowingExitDialogs", mIsShowingExitDialogs);
savedInstanceState.getInt("LastMenuItemSelected", mLastMenuItemSelected);
}
现在,我无法使用下面这一行将IsShowingExitDialogs
或LastMenuItemSelected
保存到可分配类别:
savedInstanceState.putParcelable("IsShowingExitDialogs", mIsShowingExitDialogs);
savedInstanceState.putParcelable("IsShowingExitDialogs", mLastMenuItemSelected);
Parcelable
是应用于类的接口。它适用于对象,而在您的示例中,您试图保存一个整数和一个布尔值,这两种类型都是基本类型。如果您真的想这样做,您需要将它们封装在实现Parcelable
的类中。这样就行了
编辑:
1.当重新创建活动时,在onSavedInstanceState()中保存的savedInstanceState
将在onCreate()中返回,允许您重用以前保存的数据
2.您需要创建一个自定义类MyClass extends Parcelable
,实现接口方法并按如下方式保存:
MyClass myClass = new MyClass(mIsShowingExitDialogs, mLastMenuItemSelected);
savedInstanceState.putParcelable("myClass", myClass);
Parcelable
是应用于类的接口。它适用于对象,而在您的示例中,您试图保存一个整数和一个布尔值,这两种类型都是基本类型。如果您真的想这样做,您需要将它们封装在实现Parcelable
的类中。这样就行了
编辑:
1.当重新创建活动时,在onSavedInstanceState()中保存的savedInstanceState
将在onCreate()中返回,允许您重用以前保存的数据
2.您需要创建一个自定义类MyClass extends Parcelable
,实现接口方法并按如下方式保存:
MyClass myClass = new MyClass(mIsShowingExitDialogs, mLastMenuItemSelected);
savedInstanceState.putParcelable("myClass", myClass);
您不能将savedInstanceState
保存到任何地方,savedInstanceState
是一个对象,它保存您要保存的数据,可以在onCreate()
中重新访问。您需要创建一个类MyClass
,该类保存要保存的布尔值和整数,并在此类上实现Parcelable
接口。然后将该类的一个实例保存在savedInstanceState
对象中。请参阅已编辑的回答如果您不将savedInstanceState
保存在任何地方,savedInstanceState
是一个对象,它保存您要保存的数据,可在onCreate()
中重新访问。您需要创建一个类MyClass
,该类保存要保存的布尔值和整数,并在此类上实现Parcelable
接口。然后将该类的一个实例保存在savedInstanceState
对象中。你看到我的答案了吗?你从哪里得到这个答案的?你看到我的答案了吗?你从哪里弄到的?