2014-11-05 2 views
0

Мне нужна помощь в управлении данными. Надеюсь, я могу это объяснить достаточно хорошо. Я создаю и создаю экземпляр ArrayList в классе A, но я хочу отображать данные в классе B. Это немного сложнее, чем это, позвольте мне объяснить мои шаги.Ссылка на ArrayListin другого класса? Java/Android

Я создал несколько сеттеров и добытчиками в классе А

public static void setArray(ArrayList<String> list) { 
    ClassA.mList = list; 
} 

public static ArrayList<String> getArray() { 
    return mList; 
} 

В то время как в классе А, я заполнить мой массив с одним элементом, mList.add («пункт»). Теперь, когда у меня есть пункт в моем списке (mList), я начинаю новую активность

Intent intent = new Intent(ClassA.this, ClassB.class); 
startActivity(intent); 

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

System.out.println("Data persists? " + ClassA.getArray().get(0)); 

Все работает нормально до этого момента. Но теперь я заканчиваю() класс B, который возвращает меня в класс A. Я добавил в onResume() для класса A добавить еще один элемент в свой список (mList), а затем снова запустил вторую активность (класс B). Затем я использую рекурсию, чтобы проверить, есть ли у меня два элемента в моем arraylist, и есть только 1. Я также проверил onResume, если бы мог распечатать что-нибудь, а размер mList равен 0. Я предполагаю, что он повторно создан, и сбросить список?

Как сохранить данные в ArrayList после выхода из Activity и затем вернуться обратно? Я хочу, чтобы иметь возможность добавить данные/обновления для этого ArrayList каждый раз, когда я вернуться обратно к классу А

Спасибо заранее

ответ

2

Вы не должны использовать статические методы для обмена нестатические данных между различными видами деятельности. Для этого используйте Intent, который вы передаете как временное хранилище данных. Например, вы указали, что можете обратиться к putStringArrayListExtra()

+0

Позвольте мне попробовать. Спасибо за предложение! – portfoliobuilder