Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 声明要在所有活动中使用的全局变量_Java_Android - Fatal编程技术网

Java 声明要在所有活动中使用的全局变量

Java 声明要在所有活动中使用的全局变量,java,android,Java,Android,我正在主应用程序类中创建一个自定义类。比方说我的main账户 现在,我正在创建许多活动。我想在每个活动中使用maincount变量,我该如何做到?一种方法是输入意图并传递给每个活动。有没有更好的办法,比如让它全球化 致以最诚挚的问候向上看。基本上,你想要这样的东西 public class Singleton { private static Singleton instance = null; protected Singleton() { // Exists only

我正在主应用程序类中创建一个自定义类。比方说我的
main账户

现在,我正在创建许多活动。我想在每个活动中使用
maincount
变量,我该如何做到?一种方法是输入意图并传递给每个活动。有没有更好的办法,比如让它全球化

致以最诚挚的问候

向上看。基本上,你想要这样的东西

public class Singleton {
   private static Singleton instance = null;
   protected Singleton() {
      // Exists only to defeat instantiation.
   }
   public static Singleton getInstance() {
      if(instance == null) {
         instance = new Singleton();
      }
      return instance;
   }
}
然后,对于需要访问该类的任何类,调用:

Singleton var=Singleton.getInstance();

这本质上是全局性的,没有全局变量的大部分负面后果。它将确保该类只能存在一个对象,但需要它的每个人都可以访问它

只需定义一个抽象类,该类包含您希望在活动中访问的变量和方法

例如:

public abstract class BaseActivity extends Activity
{
  //static variables
  // static methods
}
现在在所有活动中扩展此BaseActivity类:

public class HelloAndroid extends BaseActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

你考虑过使用偏好吗? 一个伟大的资源,更多的信息是。

或者,您可以创建一个扩展应用程序的类,如

您可以使用“单例”类或“静态”类(如果不需要初始化、实例化、继承或实现接口)

单身人士类别:

   public class MySingletonClass {

        private static MySingletonClass instance;

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

        private MySingletonClass() {
        }

        private String val;

        public String getValue() {
            return val;
        }

        public void setValue(String value) {
            this.val = value;
        }
    }
字符串s=MySingletonClass.getInstance().getValue()

静态类:

public  class MyStaticClass {
    public static String value;
}

字符串s=MyStaticClass.value

没问题。第一个链接还有很多其他信息。不要使用应用程序上下文保存变量,它没有onSaveInstanceState,当应用程序从内存中删除并重新创建时,变量将丢失。