在不同的类中将对象添加到Array

时间:2014-12-12 11:14:36

标签: android arraylist

首先你好,第一次在这里发帖。

我有4个类,需要将字符串放到不同类的数组中。

如果用户在我的switch语句中选择和选项,我希望它将信息发送到Array Class中的数组。这很好地解决了我遇到的麻烦,一旦用户进入不同的页面并执行代码就会擦除数组

public UserSelectionArray userArrayClass = new UserSelectionArray();

这是代码。而且我也知道这是问题,因为每次执行此代码时它都会实例化一个新数组。

如何将字符串从各个类发送到数组,而无需实例化新的UserArrayClass。

我希望我已经正确解释了这一点。

此致

 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            switch (position) {

                case 0:
                    if (UserSelectionArray.getInstance().myArray.size() < 4) {
                        UserSelectionArray.getInstance().myArray.add("Guiness");
                        Log.d("Array contains", "" + UserSelectionArray.getInstance().myArray);

                    } else {

                        Toast.makeText(BeerChoice.this, "Maximum of 4 Drinks Reached", Toast.LENGTH_LONG).show();
                        // goto confirm page


                    }


                    break;

/////用户选择类

public class UserSelectionArray {

ArrayList<String> myArray = new ArrayList<String>();


private static UserSelectionArray instance;

public static UserSelectionArray getInstance() {
    if (instance == null) {
        instance = new UserSelectionArray();

    }

    return new UserSelectionArray();
}

public UserSelectionArray() {


}

}

2 个答案:

答案 0 :(得分:0)

在UserArrayClass中创建一个公共方法

setArray(String[] newArray) {
this.array = newArray;
}

答案 1 :(得分:0)

请为您的userArrayClass使用Singleton模式。做这样的事情:

public class userArrayClass {

    private static userArrayClass instance;

    public static userArrayClass getInstance(){
        if(instance == null){
            instance = new userArrayClass();
        }       
    }

    private userArrayClass(){
        //Constructor
    }


    .... /*Rest of the code */

}

稍后以这种方式访问​​userArrayClass对象:

userArrayClass.getInstance().doSomething();

这样您就可以从程序内的任何位置访问同一个userArrayClass对象。