-2

I am using an ArrayList in my application.

I would like to know the exact procedure to initialize my ArrayList from a Singleton class.
The data will be used in some other Activities.

Can anybody help to know about Singleton class?

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
AndroidKing
  • 29
  • 1
  • 2
  • 7

3 Answers3

10

Here is how to create your singleton class :

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

Anywhere you need to call your arrayList just do :

YourSingleton.getInstance().getArray(); 

To add elements to array use :

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

or

YourSingleton.getInstance().getArray().add("any value"); 
HelloSadness
  • 945
  • 7
  • 17
1

Please look at the following wikipedia-artikle:

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

But keep in mind that singletons are 'global state' and make your sourcecode harder to test. There are lot of people saying: "singletons are evil'

Tobias Otto
  • 1,634
  • 13
  • 20
0

I think you need something like this.

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;
    }
}
vidulaJ
  • 1,232
  • 1
  • 16
  • 31