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

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

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

Перезагрузка списка при смене ориентации приложения - Android

04.01.2015, 20:15. Просмотров 624. Ответов 6
Метки нет (Все метки)

Приветствую.
Имеется приложение построено на фрагментах . В приложении есть фрагмент с listview в который загружается информации из базы при запуске в oncreateview фрагмента. Проблема в том что при смене ориентации происходит повторная перегрузка данных в список что сказывается на удобстве работы с приложением. Можно ли как то менять ориентацию без перегрузки списка.?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2015, 20:15     Перезагрузка списка при смене ориентации приложения
Посмотрите здесь:

Android Пропажа данных при смене ориентации
Android Обнуляется массив при смене ориентации устройства
Android Потеря вывода при смене ориентации экрана
Android Бесшовное проигрывание видео при смене ориентации
Выбрасывает из приложения при смене ориентации экрана Android
Перезагрузка приложения Android
Потеря потока при смене ориентации Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
krapotkin
2158 / 2096 / 542
Регистрация: 14.04.2014
Сообщений: 10,149
04.01.2015, 21:29     Перезагрузка списка при смене ориентации приложения #2
при смене ориентации происходит уничтожение и новое создание формы
поэтому все и создается с нуля, НО
теперь у формы есть
1. событие OnSaveState которое возникает, когда приложение уходит в фон.
2. свойство SaveState с полем Stream:TMemoryStream;
все что нужно, сохраняем туда в FromSaveState и загружаем оттуда в FormCreate
(нужно ессно проверять, ведь при первом запуске там пусто)
порядок действий

OnSaveState:
SaveState.Stream.Write(список параметров в подсказке)

FormCreate:
SaveState.Stream.Read(...)
lepestok198344
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 5
04.01.2015, 22:29  [ТС]     Перезагрузка списка при смене ориентации приложения #3
Простите но вопрос был по андроид
Kastaneda
Форумчанин
Эксперт С++
4263 / 2795 / 219
Регистрация: 12.12.2009
Сообщений: 7,122
Записей в блоге: 1
Завершенные тесты: 1
04.01.2015, 22:54     Перезагрузка списка при смене ориентации приложения #4
Не силен пока в андроиде, но в книги, которую я читаю, эта проблема решена путем выноса списка в отдельный синглтон. Данные из синглтона получаются в onCreate(), а сама загрузка списка происходит один раз при запуске приложения. Следует учесть, что список будет жить до конца жизни приложения, если это критично, то можно обнулять ссылку на список в синглтоне руками когда это будет необходимо и следить, чтоб ссылка на список не хранилась еще где-нибудь.
krapotkin
2158 / 2096 / 542
Регистрация: 14.04.2014
Сообщений: 10,149
04.01.2015, 22:57     Перезагрузка списка при смене ориентации приложения #5
сорри
я автоматом ответил андроид + delphi
на яве точно так же, в onCreate передается один параметр - Bundle savedInstanceState
заполняется он в onSaveInstanceState
работа с Bundle абсолютно схожа
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
09.01.2015, 00:08     Перезагрузка списка при смене ориентации приложения #6
lepestok198344, привет!
Если ещё актуально, то есть несколько вариантов решения. Более правильный - через обработку onSaveInstanceState (но я до сих пор не пробовал так делать), более простой - через запрет пересоздания активностей. Поищите что-то типа этого: android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize".
https://androidresearch.wordpress.co...n-orientation/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2015, 22:10     Перезагрузка списка при смене ориентации приложения
Еще ссылки по теме:

При смене ориентации на land программа "вылетает" Android
Android Задний фон при смене ориентации экрана
Android При смене ориентации экрана накладываются фрагменты
Не отображать SplashScreen при смене ориентации экрана Android
Android label меняет размер текста при смене ориентации Android

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

Или воспользуйтесь поиском по форуму:
lepestok198344
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 5
26.01.2015, 22:10  [ТС]     Перезагрузка списка при смене ориентации приложения #7
спасибо всем решил через создание статического массива путем вызова адаптера в on create. это решение на мой взгляд самое простое к тому же решает другие проблемы с восстановлением приложения из паузы возврата на активити. но возможно это от моего пока еще недостаточного понимания самой системы андроид
Yandex
Объявления
26.01.2015, 22:10     Перезагрузка списка при смене ориентации приложения
Ответ Создать тему
Опции темы

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