私は、Android プラットフォーム用の非常に小さなトリビア ゲームに取り組んでいるコンピューター愛好家です。
このゲームでは、複数のアクティビティ/ビュー ページ (エントリ、質問ページ、回答ページ、最終スコア ページ) 間でプレーヤーを移動します。1 つのトリビアの質問に関連するすべてのデータ (質問、4 つの答え、正解へのポインタ、プレーヤーの推測に応答するときにコンピューターが作成する関連コメント) を含む質問オブジェクトを作成し、ArrayList を正常に設定しました。 XML ファイルから DOM 解析したデータを含む Question オブジェクト。
ゲームの進行に伴い、アクティビティ間でこのデータをやり取りするための許容可能な方法は何ですか? ユーザーがゲーム内を移動するときに、これらのデータ オブジェクトを維持するにはどうすればよいですか?
グローバル変数はあまり推奨されないことを理解しています。また、Singleton デザイン パターンには、グローバル変数に関連すると言われている多くの問題があることもわかりました。これらのアプローチに代わるものを見つけることになると、私は困惑します。
MVC アプローチの基本を理解しています。私のアクティビティ *.java ファイルはコントローラー ファイルであり、XML で作成したレイアウト (ビュー) にリンクされています。ゲームの進行に合わせて維持および変更する必要がある 2 つの「モデル」オブジェクトがあります。(1) 上記の問題バンク ArrayList と、(2) プレイヤーの進行状況に関連するすべてのデータを含むある種の「PlayerProgress」オブジェクトです。ゲーム。
これらのデータ オブジェクトは、ゲームの開始時に最初にインスタンス化されますが、ユーザーがアクティビティ間を移動するときにそれらを維持する方法がわかりません。アクティビティ間で EXTRAS として情報を渡すことができることは知っていますが、EXTRA はこの目的を意図していないようです。たとえ EXTRAS がプレーヤーの進行状況プロパティに対して機能したとしても、アクティビティ間で 25 ~ 50 個の質問オブジェクトの ArrayList を渡すためにそれらを使用できるとは思いません。
シリアライゼーションとパーセル可能を調べましたが、ユーザーが異なるアクティビティ/ビュー間を行き来するたびに、データ モデル オブジェクトを基本的に分解してから再構成するのは奇妙に思えます (そしておそらく非効率的です)。これらのいずれかがこれを達成するための受け入れ可能な/一般的な方法である場合、私は喜んで先に進むことができますが、最初に他の人に確認したかった.
私はさまざまなプログラミング言語でこれに頭を悩ませ続けており、理解に失敗している全体像のより大きな部分があるのではないかと疑っています。オブジェクトとアプリケーションのライフ サイクルの説明をさまざまなリソースで読みましたが、この基本的な質問に対する解決策をまだ見つけられていません。
私は愚かなトリビア ゲームのコンテキストでこの質問をしています (「ゲームの進行に応じてアクティビティ間でデータ オブジェクトをやり取りするための許容可能な方法は何ですか」)。写真。一見基本的なことを説明する時間がない場合は、役立つと思われる他の本の説明を教えてもらえますか? (私の Safari の本棚にはいくつかのスロットが開いており、ほぼすべての技術出版物のコピーを追跡できます。)
ありがとう。