Привет. Подскажите, у меня есть адаптер поставщиков, в котором необходимо у каждого поставщика (в моём случае в методе onBindViewHolder) узнать его адреса (обращаться в БД) и прощитывать какой из адресов ближайший ко мне. Вопрос в том, где выполнять эту логику?
Зачем в методе onBindViewHolder узнавать адрес поставщика? Добавь в класс, который отображается в ViewHolder'e, свойство/поле с адресом. Свойство/поле с адресом заполняй в ViewModel/Presenter/Intarector/Mapper/etc...
Зачем в методе onBindViewHolder узнавать адрес поставщика? Добавь в класс, который отображается в ViewHolder'e, свойство/поле с адресом. Свойство/поле с адресом заполняй в ViewModel/Presenter/Intarector/Mapper/etc...
Но у меня список поставщиков, в которых может быть список адресов
А, вы предлагаете пройтись по списку поставщиков до обновления адаптера и прокидывать пару Поставщик-Адрес в адаптер?
Что-то вроде этого. Я предлагаю чтобы Вы в адаптер клали не те данные которые приходят из базы, сервера, ещё откуда-нибудь, а те которые отображаются конкретно в адаптере. Нужно делать преобразование из тех данных, которые приходят из внешних источников в те данные, которые отображаются в адаптере.
Привет. Подскажите, у меня есть адаптер поставщиков, в котором необходимо у каждого поставщика (в моём случае в методе onBindViewHolder) узнать его адреса (обращаться в БД) и прощитывать какой из адресов ближайший ко мне. Вопрос в том, где выполнять эту логику?
Во вьюхолдере показываем вью и запрашиваем для его заполнения адрес из репозитория. Если там есть кешированный - коллбэк оттуда обновит вью сразу. Иначе показываем "loading..." и ждем данных из базы. Потом их в локальнцю базу и обновить