如何保存我在类中扩展View的所有字段的状态?
@Override
protected Parcelable onSaveInstanceState() {
Parcelable localState = super.onSaveInstanceState();
Bundle bundle = new Bundle();
bundle.putSerializable("gameEngine", this.gameEngine);
bundle.putParcelable("inherited", localState);
return bundle;
}
@Override
protected void onRestoreInstanceState(Parcelable localState) {
Bundle bundle = (Bundle) localState;
this.gameEngine = ((GameEngine) bundle.getSerializable("gameEngine"));
super.onRestoreInstanceState(bundle.getParcelable("inherited"));
}
这似乎不会保存字段。
感谢。
答案 0 :(得分:0)
在单个视图对象中执行此操作可能不是最佳解决方案。从片段或包含视图的活动中保存视图的状态要容易得多。 Fragments和Activities都提供了按照示例代码中使用的模式保留状态实例的方法。
答案 1 :(得分:0)
将所有值放入数组中并手动恢复它们 或者将它们存储在自定义类中。
或者,如果您只有几个值将它们逐个放入Bundle:
bundle.putString("1", value);
bundle.putString("2", value);
etc.