【问题标题】:Android: Using an Object to store game variablesAndroid:使用对象存储游戏变量
【发布时间】:2017-04-19 14:00:44
【问题描述】:

我正在开发一个由 MainActivity 和 GameActivity 组成的简单 Android 游戏。在 MainActivity 中,用户可以选择一些选项,然后使用这些选项/变量(即游戏模式、游戏难度等)开始游戏

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

因为我有很多变量要存储(准确地说是 26 个),并且由于 Java 是面向对象的,所以我考虑使用我自己的 Game 类来存储和检索所有变量,如下所示:

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);

我的问题是:使用 Object 来存储和传递游戏变量是否方便,还是太过分了?最好的方法是什么?我错过了什么吗?提前谢谢!

【问题讨论】:

  • 你会怎么做呢?当然你会使用一个对象。
  • 您错过了 Parcel 文档的部分内容,该部分说明它不是用于持久存储...在活动之间传递 - 好的,但如果您想使用一些持久存储,那么使用 Parcel/Parcelable 不是一个选项

标签: java android android-intent parcelable


【解决方案1】:

当然,在对象中保存设置是个好方法。如果您有多个活动依赖于该对象,那么您应该考虑使用单例缓存它,并将其保存到内部存储中。 如果您有一个取决于设置的活动(就像我猜的情况一样),可以使用实现 Parcelable 的类并将该类的实例通过 Intent 传递给 GameActivity。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2019-11-25
    • 2012-08-30
    相关资源
    最近更新 更多