Я пытаюсь создать пользовательский Adapter
который может обрабатывать любые типы макетов, которые нужно раздувать. По умолчанию я подразумеваю, что любые данные, которые должны быть установлены в адаптере, и любой вид макета может использоваться с Listen Listers для установки для элемента.
Например:
У меня есть список контактов и список стран. Список контактов состоит из четырех элементов в его макете, т.е. изображения, имени, номера лица и контрольной панели. Список стран содержит CountryName (TextView) и флажок.
Можно ли использовать один и тот же адаптер и этот адаптер обрабатывать все виды товаров?
Я хочу, чтобы тиковые изображения были сброшены после нажатия на любой элемент.
Если у вас есть список с разными объектами, которые могут быть разных видов и для отображения требуются разные виды. Сделайте это так:
Пусть объект сам определяет представление. Внедрите интерфейс ViewProvider
для каждого объекта. Этот интерфейс должен предоставить метод getView()
который затем можно вызвать в адаптере.
Теперь адаптер должен только получить элемент из списка, полный ViewProviders
и вызвать метод getView
для получения представления.
Вам не придется беспокоиться об утилизации с просмотром, поскольку представления хранятся в каждом представлении ViewProvider
и создаются только один раз. Обновление полей (если они есть) также может быть сделано на стороне объекта, а не в адаптере. Но вы должны уведомить адаптер об изменении данных, вызвав notifyDataSetChanged()