2012-03-08 14 views

risposta

6

Guardate fino Singleton classes. Fondamentalmente, vuoi qualcosa di simile.

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

Poi, per ogni classe che ha bisogno di accedere alla classe, chiamata:

Singleton var=Singleton.getInstance(); 

questo è essenzialmente globale, senza la maggior parte delle conseguenze negative delle variabili globali. Assicurerà che solo un oggetto di quella classe possa esistere, ma chiunque ne abbia bisogno può accedervi.

4

basta definire un classe astratto con quelle variabili e metodi a seconda di quale si desidera accedere alle attività.

Ad esempio:

public abstract class BaseActivity extends Activity 
{ 
    //static variables 
    // static methods 
} 

estende ora questa classe BaseActivity in tutte le attività:

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

È possibile utilizzare la classe "Singleton" o una classe "statica" (se non si deve inizializzare, creare un'istanza o ereditare o implementare interfacce). Classe

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

classe statica:

public class MyStaticClass { 
    public static String value; 
} 

String s = MyStaticClass.value;

Problemi correlati