Как передавать данные из одного действия в два или более действий одновременно?

#java #android #arraylist #android-intent #android-activity

Вопрос:

Я пытаюсь передать данные из списка массивов нескольким действиям, но не могу заставить их работать. Это часть моего кода (упрощенного):

 public class firstClass{

ArrayList<String> listOfNames = new ArrayList<String>();
Intent intent = new Intent(getApplicationContext(), secondClass.class);
Intent intent2 = new Intent(getApplicationContext(), thirdClass.class);
intent2.putStringArrayListExtra("listOfNames", listOfNames)
intent.putStringArrayListExtra("listOfNames", listOfNames);
...
startActivity(intent);
 

Поэтому я хочу продолжить начатое действие, но хочу отправить данные не только в это действие, но и в другое. В обоих этих классах у меня есть следующий код:

 Intent i = getIntent();
listOfNames = i.getStringArrayListExtra("listOfNames");
 

У второго класса есть список, который мне нужен (потому что я начал его сразу), но у третьего класса его нет. Проблема в том, что я не хочу сразу начинать третий класс. Как я могу это исправить?

Я также пытался запустить третий класс из второго класса и передать данные из второго класса (то есть из первого класса во второй класс в третий класс), но это тоже не работает, потому что я удаляю элементы из списка во втором классе, но я хочу, чтобы полный список достиг третьего класса.

Спасибо,

Koen

Комментарии:

1. Насколько велик этот список? В общем, вы не хотите отправлять огромные списки вещей в an Intent .

2. В списке не более 8 имен. Такой не большой.

Ответ №1:

Я также пытался запустить третий класс из второго класса и передать данные из второго класса (то есть из первого класса во второй класс в третий класс), но это тоже не работает, потому что я удаляю элементы из списка во втором классе, но я хочу, чтобы полный список достиг третьего класса.

Поэтому сначала сделайте копию списка …

Измените одну копию списка во втором классе и отправьте другую копию, которая остается полным списком, в 3-й класс.