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?