java - Android:使用对象存储游戏变量

标签 java android android-intent parcelable

我正在开发一个简单的 Android 游戏,其中包含一个 MainActivity 和一个 GameActivity。在 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 放入我的 Intent 中:

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

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

最佳答案

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

关于java - Android:使用对象存储游戏变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497956/

相关文章:

java - 与 Sql Server 2008 的 JDBC 连接

java - Eclipse 不在同一工作区中的两个项目之间导入 jar 依赖项

javascript - 扩展 Titanium 对象在 iOS 上不起作用

android - 多个 Intent 绑定(bind)到 appwidget 中的一个按钮?

android.permission.INTERNET 尚未使用,还可以通过浏览器发送 CGI 调用

java - 我怎样才能用另一种方式解决这个程序?我想知道用户给出的输入类型

java - 为给定场景投票选出最佳协议(protocol)

java - -Websphere AS 中的 Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING

java - 在新的月份更新变量不会失败

java - 如何不用浏览器后台打开一个有IP的url?