0

私は Android 用のアプリケーションを開発しています。ある時点でユーザーが地域を選択すると、その後、アプリのすべての部分の内容が変更されます。したがって、プログラム全体で整数にアクセスする必要があります。シングルトン クラスを検討しましたが、int、get()、および set() だけを追加する方法がわかりません (どこでも読み取り、2 つのクラスで書き込みできるようにしたい (どこでも問題ありません) )))。

グローバルに宣言する必要がありますか?

これは私が今行っていることです、大丈夫ですか?

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

これは実際にはシングルトンではなく、静的クラスです。静的フィールド (インスタンスにバインドされていないフィールド) を含むクラス:

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

public static クラスを作成し、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 に答える