首页 > 解决方案 > Android Studio - 整个项目中的全局变量?

问题描述

因此,我正在制作一款手机游戏,并且在整个项目中进行多项活动。我一直在使用 Intents 将变量从一个活动传递到下一个活动,然后将这些变量传递回其他活动。因此,例如,如果 Activity1 中有一个值 x = 5,则该值将传递给 Activity2。然后,如果玩家在 Activity2 中将 x 更改为 6,则此信息将传递回 Activity1。

这种方法有效,但似乎效率很低。有没有办法为整个项目创建一个全局变量,这样当我在一个活动中更改它时,它会在所有活动中更改?

谢谢

标签: androidandroid-studiovariablesandroid-activityglobal

解决方案


很简单,创建一个单例,将变量存储在那里,然后让您的活动从单例中的变量读取和写入。

如何声明单例:

科特林:

object MySingleton {
    var myVariable: Int = 0
}

爪哇:

public class MySingleton {
    private int myVariable = 0;

    // Getter/setter

    private static MySingleton instance;

    public static MySingleton getInstance() {
        if (instance == null)
            instance = new MySingleton();
        return instance;
    }

    private MySingleton() { }
}

推荐阅读