Android: дизайн ListActivity - изменение содержимого адаптера списка - PullRequest
0 голосов
/ 31 мая 2010

Я хотел бы написать довольно простое контентное приложение, которое отображает список текстовых элементов (вместе с небольшим рисунком).
У меня есть стандартное меню, в котором каждый пункт меню представляет отдельную категорию текстовых элементов (новости, спорт, отдых и т. Д.). При нажатии на элемент меню отобразится список текстовых элементов этой категории.

Теперь наличие отдельного ListActivity для каждой категории кажется излишним (или нет? ..)
Естественно, имеет гораздо больше смысла использовать один ListActivity и заменять данные его адаптера при загрузке каждой категории.
Меня беспокоит, когда «назад» нажата. Адаптер загружен элементами текущей категории, и теперь мне нужно отобразить список предыдущей категории (и включить также щелчок по элементам списка ...).
Поскольку у меня есть только одно действие - я подумал о механизме резервного копирования и загрузки в функциях onPause () и onResume (), а также сделал различие между тем, вызывается ли эта функция в результате «нового» события (выбранный пункт меню) или «назад» нажмите.
Это кажется очень громоздким для такого тривиального использования ... Я что-то здесь упускаю?

Спасибо, Роб

1 Ответ

0 голосов
/ 31 мая 2010

Если пользователь нажмет кнопку «Назад», ваша активность, скорее всего, будет собирать мусор. Если вы правильно начнете свою деятельность из меню с различными категориями через Intent, с передачей категории и т. Д., А затем выберете контент в методе onCreate, вы будете получать новый Экземпляр своей Activity каждый раз, когда пользователь выбирает категорию, который будет уничтожен после того, как пользователь нажмет кнопку «назад».

Это поведение прекрасно. Вам не нужно справляться со странными случаями ошибок, и заполнение списка займет некоторое время, поэтому время создания объекта новой ListActivity не будет проблемой. Постарайтесь запрограммировать его как можно проще, а затем проверьте, нет ли проблем с производительностью в конце этого.

...