Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
redingo
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 29
#1

Сохранение данных при пересоздании активити - Программирование Android

29.09.2016, 22:42. Просмотров 262. Ответов 12
Метки нет (Все метки)

Добрый день, может кто-то сталкивался: имеются данные, которые я хочу добавить как ArrayList, но столкнулся с проблемой - если менять что-то в этом массиве, то после пересоздания активити(ArrayList в OnCreate создаю), подгрузиться старый массив, а изменения не сохраняться.
Может есть какие-то методы, алгоритмы, как это реализировать?
Сильно не ругайтесь, только втягиваюсь в джавку)
Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2016, 22:42     Сохранение данных при пересоздании активити
Посмотрите здесь:

Handler при пересоздании активити - Программирование Android
У меня есть поток Thread, который запускается во фрагменте и получает ссылку на изображение с сервера(парсит JSON выделяет ссылку). И...

Сохранение данные при переходе на другой активити - Программирование Android
Доброго времени суток, уважаемые! Вопрос заезжан и много инфы в инете, но прочитав и попробовав наткнулся на пару стен, соответственно...

Сохранение набранного в EditText текста при смене активити - Программирование Android
Добрый день, подскажите как сделать чтобы при смене активити текст в EditText не пропадал.

Как организовать сохранение данных при регистрации - Программирование Android
Здравствуйте! Делаю регистрационную форму. Регистрация состоит из нескольких частей: 1 ФИО и контакты 2 Дополнительная информация ...

Сохранение введенных данных при переходе на другой activity - Программирование Android
Здравствуйте, такая ситуация, есть два активити, 1-Форма добавления клиента в базу, 2-Активити для взятия даты и времени созвона с...

Передача данных между активити - Программирование Android
как сделать так чтобы при нажатии на кнопку в первом активити изменялись данные во втором активити, но без перехода в него, а переход...

Передача данных в другое активити - Программирование Android
Доброго времени суток, возникла проблема со списком! Собственно нужно выбранный элемент из списка передать в другую активность и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DemD10
58 / 47 / 12
Регистрация: 03.09.2013
Сообщений: 433
29.09.2016, 23:23     Сохранение данных при пересоздании активити #2
redingo, Храни массив вне этой активности.
korshun84
16 / 71 / 15
Регистрация: 08.07.2014
Сообщений: 375
30.09.2016, 06:47     Сохранение данных при пересоздании активити #3
Цитата Сообщение от redingo Посмотреть сообщение
Может есть какие-то методы, алгоритмы, как это реализировать?
http://startandroid.ru/ru/uroki/vse-...te-ekrana.html
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
30.09.2016, 07:20     Сохранение данных при пересоздании активити #4
Можете массив сделать static.
vxg
Модератор
3113 / 1915 / 206
Регистрация: 13.01.2012
Сообщений: 7,318
30.09.2016, 08:26     Сохранение данных при пересоздании активити #5
Но только static в Application
redingo
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 29
30.09.2016, 09:03  [ТС]     Сохранение данных при пересоздании активити #6
Просто дело в том, что есть массив.
Java
1
2
People student1= new People("Dima",1);
Persons.add(student1);
Это всё в OnCreate.
Если поменять второй параметр и закрыть app.
То будут добавляться со старыми параметрами.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
30.09.2016, 10:33     Сохранение данных при пересоздании активити #7
Как вариант используйте локальную БД
Или сохраняйте в префах, вот например как тут.

Не по теме:

что-то проблема со вставлением ссылки, поищите поиском: сохранение массива в SharedPreferences



Конечно, если массив очень большой, то лучше БД.

Да и при Create вы просто сами перезаписываете сохраненное значение. Проверяйте при Create менялся ли массив и если менялся, то не пересоздавайте его вновь.
redingo
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 29
30.09.2016, 11:51  [ТС]     Сохранение данных при пересоздании активити #8
Как тогда создать переменную, которая не обнулиться при пересоздании или полном закрытии активити?
Pablito
2411 / 1856 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
30.09.2016, 11:59     Сохранение данных при пересоздании активити #9
тебе уже ответили
- сохранять переменную в классе Application
- сохранять в SharedPreferences
- в базе
redingo
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 29
30.09.2016, 13:32  [ТС]     Сохранение данных при пересоздании активити #10
Чёт день сегодня точно тяжёлый
Эрор java.lang.NullPointerException на строке с присвоением.
Если он ещё не создан, то есть дефаулт, почему NullPointerException?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    SharedPreferences settings;
    SharedPreferences.Editor editor;
    boolean ifWasSet;
    public void makeList() {
 
        ifWasSet = settings.getBoolean("comp",false);
 
 
        if(ifWasSet == true){
            System.out.println("Ne dobavlyaem");
        }else{
 
 
        persons.add(student1);
        persons.add(student2);
        persons.add(student3);
        persons.add(student4);
 
        settings = getApplicationContext().getSharedPreferences(STORAGE_NAME, Context.MODE_PRIVATE);
        editor = settings.edit();
        editor.putBoolean("comp", true);
        editor.commit();
        }
    }
fraley
103 / 103 / 37
Регистрация: 24.05.2015
Сообщений: 313
30.09.2016, 15:28     Сохранение данных при пересоздании активити #11
Цитата Сообщение от redingo Посмотреть сообщение
Если он ещё не создан, то есть дефаулт, почему NullPointerException?
Наверное потому что инициализация SharedPreferences происходит в 19 строке.
А в 6-ой вы уже пытаетесь с ними работать. Естественно будет NullPointerException.
Pablito
2411 / 1856 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
30.09.2016, 15:38     Сохранение данных при пересоздании активити #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
не стоит наданном этапе объявлять вот так вот переменные в шапке класса
я про
SharedPreferences settings;
SharedPreferences.Editor editor;

там где необходимо взять ссылку на SharedPreferences и надо писать
JSON
1
SharedPreferences sp = getSharedPreferences(name, mode)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2016, 17:28     Сохранение данных при пересоздании активити
Еще ссылки по теме:

Передача данных между Активити - Программирование Android
Все никак не могу разобраться, как передавать данные между активити? я до этого пользовался статическими полями, но это кажется не совсем...

Доступ к базе данных из разных активити - Программирование Android
В общем-то в теме и вопрос, как получить доступ к базе данных и разных активити? Есть класс работы с базой class DBHelper extends...

Ошибка при вызове активити - Программирование Android
Всем доброго времени суток. Столкнулся вот с такой проблемой, не могу вызвать активити Вот код главного активити, из которого вызываю ...

Отправка данных из dialogfragment в активити в котором был создан диалог - Программирование Android
Здравствуйте. Нужна помощь. Как сделать так что при нажатии кнопки btnmodal в диалоге, в активити, которая вызвала диалог менялась текствью...

Запуск анимации при старте активити - Программирование Android
Есть покадровая анимация, которая выставлена фоном одного из элементов интерфейса. прописана как надо: //анимация ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
redingo
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 29
30.09.2016, 17:28  [ТС]     Сохранение данных при пересоздании активити #13
Всем спасибо
Yandex
Объявления
30.09.2016, 17:28     Сохранение данных при пересоздании активити
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru