169 похожих чатов

Хотел бы прояснить такой момент работы с вьюмоделью. Приложение берет из

сети список данных и отображает их. Если пришел пустой список, значит не удалось получить данные, тогда показываю ошибку и кнопку для повторной попытки загрузки данных.

Я вижу два варианта реализации:

1. Во вьюмодели хранится только livedata со списком данных, а активити подписывается на него. Получается, в активити будет логика, если список не пустой, показывать данные из списка, если список пустой, значит, не удалось получить данные из сети и нужно показать ошибку и кнопку для повторной попытки загрузить данные.

2. Во вьюмодели хранится не только livedata со списком данных, но и livedata<Boolean> - показывать ли ошибку, а так же livedata<Boolean> - показывать ли кнопку перезагрузки. Затем, когда вьюмодел получает данные из сети, если пришел не пустой список, то обновляет только состояние для livedata списка, если список пустой, то обновляет livedata который отвечает за состояние показа ошибки и livedata отвечающий за состояние показа кнопки перезагрузки.

Мне больше нравится 2 вариант. Сейчас он и реализован. Но не знаю, правильно ли это?

1 ответов

13 просмотров

Лучше всего написать sealed class с твоими стейтами данных и прочего. И 1 LiveData для этого класса. А в активити уже можно будет понять какой подтип sealed класса и выполнить соответствующие детали.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта