0

ビューを拡張するクラスにあるすべてのフィールドの状態を保存するにはどうすればよいですか?

@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

すべての値を配列に入れて、手動で復元します。
または、カスタム クラスに保存します。

または、いくつかの値しかない場合は、それらを 1 つずつバンドルに入れます。

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