2017-04-19 18 views
1

私は、MainActivityとGameActivityで構成される簡単なAndroidゲームを開発しています。 MainActivityで、ユーザはいくつかのオプションを選択して、私がする(26を格納するためにかなりの数の変数を持っているので、これらのオプション/変数(すなわち等のゲームモード、ゲームの難易度、)Android:オブジェクトを使ってゲーム変数を保存する

Intent gameIntent = new Intent(this, GameActivity.class); 
gameIntent.putExtra("gameMode", 3); 
startActivity(gameIntent); 

でゲームを始めることができます精密)とJavaはオブジェクト指向されているので、私は保存して、このようなすべての変数取得するために私自身のゲームのクラスを使用する方法について考えた:

public class Game implements Parcelable { 

    private int gameMode; 
    private int gameDifficulty; 

    // Constructor 
    public Game(int gameMode, int gameDifficulty) { 
     this.gameMode = gameMode; 
     this.gameDifficulty = gameDifficulty; 
    } 

    // getters and setters here 

} 

を、私の意図にParcelableとしてこれを置く:

Game myGame = new Game(gameMode, gameDifficulty); 
Intent gameIntent = new Intent(this, GameActivity.class); 
gameIntent.putExtra("game", myGame); 
startActivity(gameIntent); 

私の質問は:オブジェクトを使用して、ゲーム変数を保存したり渡したりするのが便利なのですか?最善のアプローチは何ですか?私は何かを逃したか?前もって感謝します!

+1

他にどのようにしますか?もちろん、オブジェクトを使用します。 –

+1

あなたは永続的な記憶域ではないことを伝える 'Parcel'文書の一部を見逃していました...アクティビティ間でのやりとりをしましたが、あなたが永続的なストアを使用している場合、Parcel/Parcelableを使用することはオプションではありません – Selvin

答えて

2

もちろん、オブジェクトの設定を保存するのは良いアプローチです。そのオブジェクトに依存する複数のアクティビティがある場合は、シングルトンを使用してそのアクティビティをキャッシュし、それを内部ストレージに保存することを検討する必要があります。 設定に依存するアクティビティが1つある場合は、Parcelableを実装しているクラスを使用して、そのクラスのインスタンスをIntentからGameActivityに渡しても問題ありません。

関連する問題