0

私はによって作成されたビューを持っています

this.vehicleListUI = new GameUIVehicleList();
this.vehicleListUI.attachGameEngine(myGameEngine);

この作業は、Android の破棄とビューの復元に役立ちます。Androidは空のコンストラクターを使用してビューを再作成できますが、私の問題はこれGameUIVehicleListが機能することです。ほとんどの場合、myGameEngine オブジェクトをGameUIVehicleList

myGameEngineシリアライズ可能ではなく、これにすることはできません ( UI の一部です)

myGameEngineオブジェクトを作成ビューに再アタッチすることで、ビューを完全に復元する方法があります。これは、多くの「new GameUIVehicleList()」を XML レイアウト ファイルに有効にするのにも適しています。

編集:

これが助けになるかどうかはわかりませんが、最初からこの問題を抱えている方法はandroid.support.v4.app.FragmentActivity、ビューオブジェクトを破棄して再作成するために a と this keep を使用することです。また、フラグメントを再作成/作成しandroid.support.v4.app.FragmentActivityているときに呼び出すメソッドをオーバーライドすることで、これを修正することもできます。このために、必要なデータを保持するアクティビティから必要な値を設定します。FragmentActivity

4

2 に答える 2

2

アクティビティ (およびビュー) の破棄と再作成は、通常、構成の変更 (ほとんどの場合、画面の向きの変更) で発生します。この記事が役立つかどうか、およびonRetainNonconfigurationInstance() /setRetainInstance()が問題の解決策ではないかどうかを確認することをお勧めします。

于 2012-10-22T08:59:25.353 に答える
0

またはでmyGameEngineない場合、これを確実に実行できるとは思えません。SerializableParcelable

ただし、問題がなければ、回復されない場合があるため、変数を含む独自のカスタム クラスでクラスをmyGameEngine拡張し、アプリケーション コンテキストに保存されたものを取得できます。ApplicationMyApplicationmyGameEngineonCreatemyGameEngine

MyApplication app = (MyApplication) this.getApplicationContext();
this.vehicleListUI.attachGameEngine(app.myGameEngine);
于 2012-10-22T08:46:16.743 に答える