0

我正在为 Android 开发一个应用程序,并且有一次用户选择了一个区域,之后应用程序所有部分的内容都发生了变化。因此我需要在整个程序中访问一个整数。我考虑过一个单例类,但我不知道如何向它添加一个 int、一个 get() 和一个 set()(我希望能够在任何地方阅读并在两个类中写入(到处都很好) ))。

我应该简单地声明它是全球性的吗?

这就是我现在要做的,可以吗?

public enum Region {
INSTANCE;
private int rID =0;

public void setRID(int rID) {
    this.rID=rID;

}

public int getRID()
{
    return rID;
}

}

访问

Region.INSTANCE.setRID(5);
4

4 回答 4

1

这不是一个真正的 Singleton,而是一个静态类。包含静态字段(未绑定到实例的字段)的类:

public class StaticClass {

    private static int value;

    private Singleton () {}

    public static int getValue () {
       return value;
    }
    public static void setValue (int val) {
       value = val;
    }

}

您可以通过 访问值StaticClass.getValue()并通过 设置值StaticClass.getValue(4)。('StaticClass 不能被对象替换)。

私有构造函数可防止意外创建实例。

于 2012-04-29T17:15:05.153 回答
1

尝试类似的东西

public class State
{
     static State instance = new State ();
     public static State getInstance() { return instance; }

     private int value;
     public void setValue (int value) { this.value = value; }
     public int getValue () { return value; }
}

不要忘记在应用程序退出时存储您的值,并在重新加载时恢复它。

于 2012-04-29T17:16:12.983 回答
0

创建一个公共静态类并将 setter 和 getter 声明为 public。

于 2012-04-29T17:16:01.887 回答
0

我带着一个枚举去了:

public enum Region {
INSTANCE;
private int rID =0;

    public void setRID(int rID)
    {
        this.rID=rID;

    }

    public int getRID()
    {
        return rID;
    }
}

我访问的

Region.INSTANCE.getRID();
于 2012-05-14T10:55:00.357 回答