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

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

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

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

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

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

Выбрасывает из приложения при смене ориентации экрана - Программирование Android
Здравствуйте. Следующая проблема. Создал папку layout-land в папке res. И при добавлении туда вот этого файла xml: <LinearLayout...

Пропажа данных при смене ориентации - Программирование Android
При поворачивании телефона все данные обнуляются и вообще такое такое чувство, что приложение только что открылось как это предотвратить

Потеря потока при смене ориентации - Программирование Android
Здравствуйте! У меня приложения связывается по Bluetooth с другими устройствами. Всё работает хорошо. НО! Если перевернуть устройство и...

Бесшовное проигрывание видео при смене ориентации - Программирование Android
Предложите пример или подскажите каким образом можно организовать бесшовное проигрывание видео при смене ориентации устройства?

При смене ориентации экрана накладываются фрагменты - Программирование Android
Юзаю Android.Support.V4.App.Fragment, вроде бы все нормально. При переключении из меню фрагменты скрываю отправляя в "стек" а кликнутый...

Потеря вывода при смене ориентации экрана - Программирование Android
Калькулятор вывел результат в компонент textview. Стоит поменять ориентацию экрана и весь результат подсчета пропадает. :(

6
krapotkin
2628 / 2506 / 632
Регистрация: 14.04.2014
Сообщений: 12,124
Записей в блоге: 7
04.01.2015, 21:29 #2
при смене ориентации происходит уничтожение и новое создание формы
поэтому все и создается с нуля, НО
теперь у формы есть
1. событие OnSaveState которое возникает, когда приложение уходит в фон.
2. свойство SaveState с полем Stream:TMemoryStream;
все что нужно, сохраняем туда в FromSaveState и загружаем оттуда в FormCreate
(нужно ессно проверять, ведь при первом запуске там пусто)
порядок действий

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

FormCreate:
SaveState.Stream.Read(...)
0
lepestok198344
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 5
04.01.2015, 22:29  [ТС] #3
Простите но вопрос был по андроид
0
Kastaneda
Нарушитель
Эксперт С++
4664 / 2870 / 229
Регистрация: 12.12.2009
Сообщений: 7,299
Записей в блоге: 2
Завершенные тесты: 1
04.01.2015, 22:54 #4
Не силен пока в андроиде, но в книги, которую я читаю, эта проблема решена путем выноса списка в отдельный синглтон. Данные из синглтона получаются в onCreate(), а сама загрузка списка происходит один раз при запуске приложения. Следует учесть, что список будет жить до конца жизни приложения, если это критично, то можно обнулять ссылку на список в синглтоне руками когда это будет необходимо и следить, чтоб ссылка на список не хранилась еще где-нибудь.
1
krapotkin
2628 / 2506 / 632
Регистрация: 14.04.2014
Сообщений: 12,124
Записей в блоге: 7
04.01.2015, 22:57 #5
сорри
я автоматом ответил андроид + delphi
на яве точно так же, в onCreate передается один параметр - Bundle savedInstanceState
заполняется он в onSaveInstanceState
работа с Bundle абсолютно схожа
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.01.2015, 00:08 #6
lepestok198344, привет!
Если ещё актуально, то есть несколько вариантов решения. Более правильный - через обработку onSaveInstanceState (но я до сих пор не пробовал так делать), более простой - через запрет пересоздания активностей. Поищите что-то типа этого: android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize".
https://androidresearch.wordpress.co...n-orientation/
0
lepestok198344
0 / 0 / 0
Регистрация: 02.07.2014
Сообщений: 5
26.01.2015, 22:10  [ТС] #7
спасибо всем решил через создание статического массива путем вызова адаптера в on create. это решение на мой взгляд самое простое к тому же решает другие проблемы с восстановлением приложения из паузы возврата на активити. но возможно это от моего пока еще недостаточного понимания самой системы андроид
0
26.01.2015, 22:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2015, 22:10
Привет! Вот еще темы с ответами:

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

Задний фон при смене ориентации экрана - Программирование Android
Здравствуйте! Мне надо чтобы фон не сжимался так, а как в HTML оптимизировал под размер экрана... Заранее спасибо! (Приложение и картинка...

Не отображать SplashScreen при смене ориентации экрана - Программирование Android
Не могу понять как сделать чтобы сплэш не появлялся снова при смене ориентации экрана? + подскажите, почему при горизонтальной...

Android label меняет размер текста при смене ориентации - Программирование Android
Я заметил что текст названия приложения меняет свой размер при смене ориентации. Но в большинстве приложений нет такого. Где находится...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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