如何在Android中的活动之间访问相同的变量

Kay*_*ice 3 java inheritance code-reuse static android

我想知道如何在我的Android应用程序中访问int所有Activity类之间的相同变量.我的情况是我有一个代表一些点的变量,我把它放在它自己的类中,我希望每个Activity使用它的值都相同.

当用户获得一个点时,它会增加1,所以假设用户得到12分,我希望它在所有Activitys 中都是相同的.

小智 6

您可以使用单例对象类.但它是一种java基本模式.

public class MySingletonClass {

    private static MySingletonClass instance;

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

    private MySingletonClass() {
    }

    private int intValue;

    public int getIntValue() {
        return intValue;
    }

    public void setIntValue(int intValue) {
        this.intValue = intValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以使用每个地方

MySingletonClass.getInstance().getInt;
Run Code Online (Sandbox Code Playgroud)

MySingletonClass.getInstance().setInt(value);
Run Code Online (Sandbox Code Playgroud)

这不是最快的模式,但它是最好的模式之一.实际上,您可以添加所需的var数量,并且可以从任何地方访问,也可以在非Activity类中访问


Y.S*_*Y.S 5

步骤1:

Activity从同一个BaseActivity类中扩展所有。

第2步:

将您的int变量放入,BaseActivity然后将protectedstatic限定符添加到int变量中:

public class BaseActivity extends Activity{

    ....
    ....
    protected static int points;
    ....
    ....

}
Run Code Online (Sandbox Code Playgroud)

现在,您可以访问每个points变量,Activity它将具有相同的值。

其他答案表明,此处无需使用单例。具有一个公共static变量要简单得多。它的编程101。

尝试这个。这将起作用。