Где обрабатывается событие изменения данных в просмотре списка? - PullRequest
3 голосов
/ 14 июля 2010

У меня есть ListView, который заполнен из моего адаптера моими пользовательскими представлениями.В каждом представлении есть две кнопки, одна из которых запускает другую операцию для редактирования содержимого этого элемента списка, а другая - для удаления этого элемента.

Мой вопрос: где должны быть обработчики ClickEvent для этих кнопок?Должен ли я поместить их правильно в свой код пользовательского представления, поскольку у меня есть вся необходимая информация?Должен ли я запустить ASyncTask, который удаляет элемент и обновляет данные адаптера и вызывает onDataSetChanged () и т. Д.это работает на любом уровне, но на каком уровне в этой иерархии (Activity-> ListView-> Adapter-> ListItemView) это подходящее место для редактирования / удаления резервных данных для ListView?

1 Ответ

0 голосов
/ 14 июля 2010

Я делаю это так:

  • Adapter s имеют открытые методы для работы с основными данными (например, public void deleteItem(int position)), которые выполняют свою работу и в конце вызывают notifyDataSetChanged();
  • Activity хранит ссылку на Adapter в локальной переменной;
  • Listener s обычно создаются как анонимные внутренние классы Activity, вызывающие соответствующие Adapter методы.
...