保存View类中所有字段的状态 - Android

时间:2013-05-01 18:00:13

标签: java android

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

这似乎不会保存字段。

感谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

bundle.putString("1", value);
bundle.putString("2", value);
etc.