0

I have created a singleton ArrayList class in android which is following.

public class SingletonArrayList  {

    private static SingletonArrayList mInstance;
    private ArrayList<String> userNameList = null;

    public static SingletonArrayList getInstance() {
        if(mInstance == null)
            mInstance = new SingletonArrayList();
        return mInstance;
    }

    private SingletonArrayList() {
        userNameList = new ArrayList<String>();
    }

    // retrieve array from anywhere
    public ArrayList<String> getArray() {
        return this.userNameList;
    }

    //Add element to array
    public void addToArray(String value) {
        userNameList.add(value);
    }
}

I'm calling this singleton ArrayList in my activity2. It's working fine there(it contains data!).

activty2:

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, SingletonArrayList.getInstance().getArray());

But in activtiy1 it's returing an empty list.

activity1:

Log.i("single",SingletonArrayList.getInstance().getArray().toString());

if(SingletonArrayList.getInstance().getArray().contains(username1)) {
    Toast.makeText(getApplicationContext(), "Username already Exists. Please select a different username", Toast.LENGTH_LONG).show();
    return;
}

Basically, the problem is that ArrayList is coming empty in one activity and contains data in another activity. Any solutions?

Avijit Karmakar
  • 6,843
  • 5
  • 30
  • 53
user3094279
  • 37
  • 2
  • 10

0 Answers0