2016-10-20 106 views
-4

我在我的應用程序中使用ArrayList。使用Singleton類初始化/訪問ArrayList

我想知道從Singleton類初始化我的ArrayList的確切過程。
該數據將用於其他一些活動。

任何人都可以幫助瞭解Singleton類嗎?

+0

請添加一些代碼,並進一步解釋,以幫助我們理解這個問題。 – Tuzane

回答

2

這裏是如何創建單例類:

public class YourSingleton { 

     private static YourSingleton mInstance; 
     private ArrayList<String> list = null; 

     public static YourSingleton getInstance() { 
      if(mInstance == null) 
       mInstance = new YourSingleton(); 

      return mInstance; 
     } 

     private YourSingleton() { 
      list = new ArrayList<String>(); 
     } 
     // retrieve array from anywhere 
     public ArrayList<String> getArray() { 
     return this.list; 
     } 
     //Add element to array 
     public void addToArray(String value) { 
     list.add(value); 
     } 
} 

你需要的地方打電話給你的arrayList只是做:

YourSingleton.getInstance().getArray(); 

要添加到陣列使用的元素:

YourSingleton.getInstance().addToArray("first value"); 

YourSingleton.getInstance().getArray().add("any value"); 
+0

謝謝@Anto ..還有一件事是我可以在同一個singleton類中使用多個arraylist – AndroidKing

+0

是的,你可以創建不同的方法來調用正確的數組。在這個例子中你有getArray()。你可以創建getFirstArray(),getSecondArray()等等......只需在類聲明中添加你的其他數組,並在構造函數中初始化它們,就像我爲'list'所做的那樣。 – HelloSadness

+0

有一個想法..非常友善@ Anto Lemme結帳和讓你知道 – AndroidKing

1

請看看下面維基百科artikle:

https://en.wikipedia.org/wiki/Singleton_pattern

但是請記住,單身是「全局狀態」,讓你的源代碼更難測試。有很多人說:「單身是邪惡的」

+0

如果你不知道如何正確對待他們,他們會變得邪惡。 –

0

我認爲你需要像這樣

public class SingletonClass { 

    private static ArrayList<String> strArray; 
    private static SingletonClass singleton; 

    private SingletonClass(){} 

    public static synchronized SingletonClass getConnectionInstance(ArrayList<String> strArray){   
     if (singleton == null) { 
      singleton = new SingletonClass(); 
     } 
     this.strArray = strArray; 
     return singleton; 
    } 
}