2014-12-12 3 views
0

Прежде всего, приветствуйте меня, сначала отправляя сообщение здесь.Добавление объектов в массив в другом классе

У меня есть 4 класса, которые должны помещать строки в массив, находящийся в другом классе.

Если пользователь выбирает и имеет значение в моем операторе switch, я бы хотел, чтобы он отправлял информацию в массив в классе Array. Это хорошо работает, беда у меня возникли, когда пользователь затем переходит на другую страницу и код выполняется он вытирает массив

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

, пожалуйста, покажите кусок кода. Существует множество способов отправки и получения данных в разных действиях. – Opiatefuchs

+0

Я не понимаю полностью, но вы можете использовать массив объектов. так что вы можете сохранить каждый объект типа в этом массиве – Adem

+0

непонятно, что именно у вас хочет, пожалуйста, укажите конкретно –

ответ

0

Создание общедоступного метод в UserArrayClass

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

Пожалуйста, используйте Singleton шаблон для вашего serArrayClass. Сделайте что-то вроде этого:

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 из любого места внутри программы.

+0

Ive пробовал это сделать, и код выглядит безошибочно, однако я получаю исключение нулевого указателя –

+0

На что? Вы ввели все поля (массивы, списки или что-то еще) в конструкторе? – Kelevandos

+0

Обновленный основной вопрос –

Смежные вопросы