Android ListView не сохраняет значения из-за изменения ориентации - PullRequest
2 голосов
/ 08 июня 2011

Я немного озадачен тем, что Android удерживает при изменении ориентации вида, а что нет.

Некоторые вещи, которые, кажется, хорошо держатся, другие вещи, которые, кажется, нет ...Поэтому я не уверен, что это мой код или что-то еще.(Я предполагаю, что я делаю что-то глупое)

У меня есть представление с представлением списка в нем, представление списка имеет простой адаптер и массив элементов карты для помещения в представление списка.

Когда ориентация меняется, я знаю, что действие уничтожено и воссоздано, поэтому я предполагаю, что мой простой адаптер и его связь с представлением списка пропали ... поэтому представление списка не будет вращаться заполненным, и мне нужно будет использовать onRetainNonConfigurationInstanceили методы onSaveInstanceState для прохождения либо через адаптер, либо через список значений?

Это кажется чрезмерным, я не могу поверить, что у проницательных ребят в Google нет более простого способа справиться с этим.идентификатор, и после ориентации я могу добавить элементы к нему, и он работает нормально, но он просто не поддерживает значения, которые у него были раньше.

Это мой единственный способ обойти содержимое списка явно?Это факт, что я создаю новый SimpleAdapter и связываю его со списком в onCreate, который вызывает проблему?Или это тот факт, что массив Предметов, которые я связал с адаптером, удаляется при активности ??Похоже, что-то, что не требует такой большой работы для выполнения ... я что-то упускаю?

1 Ответ

3 голосов
/ 08 июня 2011

Нет, у вас также может быть постоянная модель через жизненный цикл Activity, например:

определение одноэлементного приложения с методом для получения вашей одноэлементной модели.

При создании получите ваши данныеот вашей модели.

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

С уважением, Стефан

...