#java #android #listview #activity_life_cycle
Есть приложение, в котором при нажатии на кнопку создаются и добавляются элементы списка ListView. При перезагрузке приложения, они пропадают. Догадываюсь, что нужно использовать БД, и при создании элемента добавлять его в БД, а в методе OnCreate поставить создание списка ListView из элементов в БД(исправьте, если я не прав). Вопрос такой: можно ли сохранять список после перезагрузки приложения НЕ ИСПОЛЬЗУЯ БД, т.к. в списке будет максимум 10-15 элеметов(это потолок). Б
Ответы
Ответ 1
У Activity есть onSaveInstanceState, который срабатывает при закрытии. Переопределите его, чтоб сохранить данные из ListView: public void onSaveInstanceState(Bundle savedState) { super.onSaveInstanceState(savedState); // здесь берём данные из адаптера // если у вас ArrayAdapter, то будет так String[] values = mAdapter.getValues(); savedState.putStringArray("myKey", values); } А потом в onCreate получайте: public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { String[] values = savedInstanceState.getStringArray("myKey"); if (values != null) { mAdaptor = new MyAdaptor(values); } } [...] }Ответ 2
Можно. Вы можете хранить данные разными способами: В SharedPreferences Записывая данные в свой файл любого формата. Использовать БД Также, если вы под "перезагрузкой приложения" имеете в виду пересоздание экрана при его повороте, то вам также поможет инфа по ссылке из п.1 (сохранение данных активити в Bundle при поворотах экрана)
Комментариев нет:
Отправить комментарий