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

Ребят,Есть список айтемов,у каждого ratingbar. Нужно с помощью livedata сохранить

прогресс у каждого бара. Как это сделать?

16 ответов

12 просмотров

почему с помощью liveData? куда сохранить?

Dmitry Levchenko- Автор вопроса

ну стейт экрана сохранить,чтобы при повороте рейтинги не слетели

нужно как только юзер выставляет оценку делать вызов каллбека и сохранять

Dmitry Levchenko- Автор вопроса

ты про колбек самого ratingBar?

ну да, отправлять оценку из адаптера в вьюмодель, которая переживёт пересоздание и отправит данные с оценками обратно

Dmitry Levchenko- Автор вопроса

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

а зачем пересоздавать список, просто в списке берёшь элемент и выставляешь у него rating нужный тебе, при пересоздании экрана этот список идёт в адаптер и всё пересоздаётся

Dmitry Levchenko- Автор вопроса

да,но у меня ведь лист айтемов в лайв дате и в обсервере я не знаю,какой из них изменился. Но я вроде понял,как это решить.Надо diffutils использовать. Пасибо за наводку

А причём тут обсервер при пересоздании экрана, там же не важно какой элемент изменился, просто весь список выводить или к лайф дате ещё что-то подписано?

Dmitry Levchenko- Автор вопроса

Больше нет подписок. Я имею ввиду,что мы только такой - viewModel.cells.observe(viewLifecycleOwner, Observer<List<MyCell>> { TODO("Not yet implemented") } обсервер можем повесить

Ну, делаем список и подписываемся на вью модель и если данные уже есть, нотифаем лайв дату, иначе получаем их и потом нотифаем. Лайв дата не нотифается если отдельный элемент в списке изменить внутри неё

Dmitry Levchenko- Автор вопроса

"Лайв дата не нотифается если отдельный элемент в списке изменить внутри неё" .Аа ,я не знал, тогда всё удобно. Спасибо. Скажи,а как правильнее к view model из адаптера обращаться? Передавать туда через констуктор?

через каллбэк к фрагменту или активности обращаться, а потом уже к вью модели

Dmitry Levchenko- Автор вопроса

Пасиб

или через лямбду

Ну наверняка там помимо изменения оценки ещё и клики какие-нибудь будут, поэтому каллбэк лучше)

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

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

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Оба варианта в целом подходят, но скорее создание конфликтной ситуации (на пустой основе). В прошлый раз он сказал мне про ESP32, я забыл про этот микроконтроллер, ошибся, я п...
КТ315
4
Карта сайта