2011-04-05 4 views
0

Quelqu'un peut-il me dire où instancier un objet de classe singleton comme ArrayList?Instancier des objets de classe singleton dans Android

Je suis en train de instancier dans la méthode onCreate() mais son pas instancié. Quelqu'un peut-il me dire où l'allouer?

public class SharedVariables extends Application 
{ 
public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageUrlDicts; 
public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageNameDicts; 

@Override 
public void onCreate() 
{ 
    super.onCreate(); 
    ArrayOfImageUrlDicts = new ArrayList<ArrayList<Map<String,String>>>(); 
    ArrayOfImageNameDicts = new ArrayList<ArrayList<Map<String,String>>>(); 
} 
} 
+0

Cela dépend de ce que vous essayez de faire? Comment allez-vous utiliser ces arraylist –

Répondre

1

Ceci est en fait pas un vrai Singelton (see Wikipedia for an accurate Description of Singeltons) mais une variable statique normale. Si vous voulez utiliser des variables statiques, vous pouvez envisager de l'utiliser car cela rend les choses beaucoup plus belles. Toutefois, pour répondre à votre question concrète, vous pouvez soit utiliser un bloc statique où vous initialisez ces variables, soit les initialiser directement après la décodage.

public class SharedVariables extends Application 
{ 
    public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageUrlDicts = new ArrayList<ArrayList<Map<String,String>>>(); 
    public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageNameDicts = new ArrayList<ArrayList<Map<String,String>>>(); 

    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 
    } 
} 

ou

public class SharedVariables extends Application 
{ 
    public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageUrlDicts; 
    public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageNameDicts; 
    static 
    { 
     ArrayOfImageUrlDicts = new ArrayList<ArrayList<Map<String,String>>>(); 
     ArrayOfImageNameDicts = = new ArrayList<ArrayList<Map<String,String>>>(); 
    } 
    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 
    } 
} 
0
public class SharedVariables extends Application 
{ 

ModelSingleTonclass obj; 

public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageUrlDicts; 
public static ArrayList<ArrayList<Map<String,String>>> ArrayOfImageNameDicts; 

@Override 
public void onCreate() 
{ 
    super.onCreate(); 

obj=ModelSingleTonclass.getInstance(); 

    ArrayOfImageUrlDicts = new ArrayList<ArrayList<Map<String,String>>>(); 
    ArrayOfImageNameDicts = new ArrayList<ArrayList<Map<String,String>>>(); 
} 
}