0

如何保存我的类中扩展 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"));
}

这似乎并没有保存字段。

谢谢。

4

2 回答 2

0

在单个视图对象中执行此操作可能不是最佳解决方案。从片段或包含视图的活动中保存视图的状态会容易得多。片段和活动都提供了按照您在示例代码中使用的模式来保留状态实例的方法。

于 2013-05-01T18:27:30.523 回答
0

将所有值放在一个数组中并手动恢复它们。
或者将它们存储在自定义类中。

或者,如果您只有几个值,请将它们一一放入 Bundle:

bundle.putString("1", value);
bundle.putString("2", value);
etc.
于 2013-05-01T18:28:08.513 回答