首先你好,第一次在这里发帖。
我有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() {
}
}
答案 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对象。