2012-03-08 54 views
5

我正在主应用程序类中创建一个自定义类。可以说我的mainAccount声明一个全局变量用于所有活动

现在,我正在创建许多活动。我想要mainAccount变量在每个活动中,我怎么能做到这一点?一种方法是投入意向并传递给每个活动。有没有更好的方法,比如让它成为全球的etC?

最好的问候

回答

6

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

这主要是全球性的,没有大部分的全局变量的消极后果。它将确保只有该类的一个对象可以存在,但每个需要它的对象都可以访问它。

4

只需定义一个抽象类与这些变量和方法无论你想要在活动中访问。

例如:

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

您可以使用“单”类或“静态”类(如果你不需要初始化,实例或实例阐述扩展应用类继承或实现接口)。

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 = MySingletonClass.getInstance()的getValue();

静态类:

public class MyStaticClass { 
    public static String value; 
} 

的String = MyStaticClass.value;