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

时间:2012-03-08 04:49:12

标签: java android

我正在主应用程序类中创建一个自定义类。让我们说mainAccount

现在,我正在创建许多活动。我想在每个活动中mainAccount变量,我该怎么做?一种方法是投入意图并传递给每个活动。有没有更好的方法,比如把它变成全球性的etC?

最好的问候

4 个答案:

答案 0 :(得分:7)

查找Singleton classes。基本上,你想要这样的东西。

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();

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

答案 1 :(得分:6)

您是否考虑过使用偏好? 更多信息的绝佳资源是。 http://mobile.tutsplus.com/tutorials/android/android-application-preferences/

或者您可以创建一个扩展应用程序的类,如下所示 http://www.helloandroid.com/category/topics-covered/global-variables

答案 2 :(得分:5)

只需使用您希望在活动中访问的变量和方法定义抽象类。

例如:

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);
    }
}

答案 3 :(得分:1)

您可以使用“singleton”类或“static”类(如果您不需要初始化它,实例化或继承或实现接口)。

Singleton类:

   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;
        }
    }

String s = MySingletonClass.getInstance()。getValue();

静态类:

public  class MyStaticClass {
    public static String value;
}

String s = MyStaticClass.value;