我正在创建一个自定义类在主应用程序类中。假设我的mainAccount
。
现在,我正在创建许多活动。我想在每个活动中使用mainAccount
变量,有什么方法可以做到这一点吗?一种方法是将其放入意图并传递到每个活动。是否有更好的方法,例如使其全局等?
最好的问候
查找单例类。基本上,您需要像这样的东西。
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();
这实际上是全局的,但没有大多数全局变量的负面影响。它将确保该类只能存在一个对象,但需要它的每个人都可以访问它。
您是否考虑过使用偏好设置?了解更多信息的绝佳资源为http://mobile.tutsplus.com/tutorials/android/android-application-preferences/
或者您可以创建一个扩展应用程序类的类,正如http://www.helloandroid.com/category/topics-covered/global-variables所演示的那样。
只需定义一个抽象类,包含你想在活动中访问的变量和方法。
例如:
public abstract class BaseActivity extends Activity
{
//static variables
// static methods
}
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;
}
}
String s = MySingletonClass.getInstance().getValue();
静态类:
public class MyStaticClass {
public static String value;
}
字符串 s = MyStaticClass.value;