Size: a a a

StartAndroid Ru Chat

2020 October 15

SP

Sergey Panov in StartAndroid Ru Chat
Alex Suvorov
Привет. Подскажите, у меня есть адаптер поставщиков, в котором необходимо у каждого поставщика (в моём случае в методе onBindViewHolder) узнать его адреса (обращаться в БД) и прощитывать какой из адресов ближайший ко мне. Вопрос в том, где выполнять эту логику?
Зачем в методе onBindViewHolder узнавать адрес поставщика?
Добавь в класс, который отображается в ViewHolder'e, свойство/поле с адресом.
Свойство/поле с адресом заполняй в ViewModel/Presenter/Intarector/Mapper/etc...
источник

AS

Alex Suvorov in StartAndroid Ru Chat
Sergey Panov
Зачем в методе onBindViewHolder узнавать адрес поставщика?
Добавь в класс, который отображается в ViewHolder'e, свойство/поле с адресом.
Свойство/поле с адресом заполняй в ViewModel/Presenter/Intarector/Mapper/etc...
Но у меня список поставщиков, в которых может быть список адресов
источник

AS

Alex Suvorov in StartAndroid Ru Chat
А да, мне нужно показывать в view время работы ближайшего адреса
источник

SP

Sergey Panov in StartAndroid Ru Chat
Alex Suvorov
Но у меня список поставщиков, в которых может быть список адресов
В ViewHoldere показывается 1 поставщик? У поставщика есть адрес?
источник

AS

Alex Suvorov in StartAndroid Ru Chat
1 поставщик, 1 адрес, который заранее неизвестен
источник

SP

Sergey Panov in StartAndroid Ru Chat
Alex Suvorov
1 поставщик, 1 адрес, который заранее неизвестен
А зачем в базу ходить в  onBindViewHolder?
источник

SP

Sergey Panov in StartAndroid Ru Chat
если у поставщика уже есть адрес
источник

AS

Alex Suvorov in StartAndroid Ru Chat
А, вы предлагаете пройтись по списку поставщиков до обновления адаптера и прокидывать пару Поставщик-Адрес в адаптер?
источник

AS

Alex Suvorov in StartAndroid Ru Chat
блин, ну так-то логично
источник

SP

Sergey Panov in StartAndroid Ru Chat
Alex Suvorov
А, вы предлагаете пройтись по списку поставщиков до обновления адаптера и прокидывать пару Поставщик-Адрес в адаптер?
Что-то вроде этого. Я предлагаю чтобы Вы в адаптер клали не те данные которые приходят из базы, сервера, ещё откуда-нибудь, а те которые отображаются конкретно в адаптере.
Нужно делать преобразование из тех данных, которые приходят из внешних источников в те данные, которые отображаются в адаптере.
источник

AS

Alex Suvorov in StartAndroid Ru Chat
Преобразование происходит задолго до этого, но вариант с итерацией перед обновлением адаптера мне подходит больше, спасибо)
источник

СП

Сергей П. in StartAndroid Ru Chat
Alex Suvorov
Привет. Подскажите, у меня есть адаптер поставщиков, в котором необходимо у каждого поставщика (в моём случае в методе onBindViewHolder) узнать его адреса (обращаться в БД) и прощитывать какой из адресов ближайший ко мне. Вопрос в том, где выполнять эту логику?
Во вьюхолдере показываем вью и запрашиваем для его заполнения адрес из репозитория. Если там есть кешированный - коллбэк оттуда обновит вью сразу. Иначе показываем "loading..." и ждем данных из базы. Потом их в локальнцю базу и обновить
источник

SP

Sergey Panov in StartAndroid Ru Chat
Я туплю или в такой ситуации возможны варианты когда переменная может быть нулабельна?
источник

SP

Sergey Panov in StartAndroid Ru Chat
Но когда я добавляю восклицательные знаки, студия говорит что они не нужны
источник

СП

Сергей П. in StartAndroid Ru Chat
Типичный Котлин. Х.з.че хочет)
источник

AS

Alex Suvorov in StartAndroid Ru Chat
Скорее всего выше уже есть подобный оператор
источник

AS

Alex Suvorov in StartAndroid Ru Chat
= оно если упадёт, то ещё до выполнения этого кода
источник

СП

Сергей П. in StartAndroid Ru Chat
А проверка на нулл в Котлине зачем через if? Спецально что бы не как у джавы let? придумали же
источник

AS

Alex Suvorov in StartAndroid Ru Chat
а, точно. Типичный котлин
источник

SP

Sergey Panov in StartAndroid Ru Chat
Наверное корутины сложноваты даже для компилятора
источник