Size: a a a

2020 April 18

AB

Alikhan Bakytbek in Android KZ
а notesFromLiveData содержит весь список?)
источник

AB

Alikhan Bakytbek in Android KZ
тогда твоя логика не должна содержать цикл в том месте
источник

АЕ

Алим Ещанов in Android KZ
Alikhan Bakytbek
а notesFromLiveData содержит весь список?)
Да
источник

VT

Vladimir Tokarev in Android KZ
Алим Ещанов
В моем случае он выводит только последний элемент списка
Потому что вы пробегаете в цикле по всем Notes и поочереди все сетите
источник

VT

Vladimir Tokarev in Android KZ
Но глазу это незаметно :))) и вконце когда цикл заканчивает работу в текстах остаётся последнее значение из списка
источник

AB

Alikhan Bakytbek in Android KZ
лайвдата выплюнет тебе весь список, из которого ты сначала вытащишь 1ый элемент. Потом делаешь интеракшн с пользователем. Если валидация прошла, то обращаешься к списку и достаешь следующий, и так до конца
источник

AB

Alikhan Bakytbek in Android KZ
цикл тут нельзя использовать
источник

АЕ

Алим Ещанов in Android KZ
А как тогда с observer вытащить?
источник

VT

Vladimir Tokarev in Android KZ
Можно как вариант завести переменную счётчик, который будет увеличиваться при прохождении валидации. По этому счётчику и вытаскивать элементы.
источник

AB

Alikhan Bakytbek in Android KZ
@wow1one зажигай 😂 ты же любишь строчить
источник

VT

Vladimir Tokarev in Android KZ
И так.
Идёшь в базу за словами. Если производительность сейчас ненужна и слов мало, то можно все сразу с базы получить и сохранить в поле во ViewModel как там удобно, зависит от архитектуры.
И заводим, допустим счётчик.
Ставим счётчик на 0
Берём 0й элемент из сохраненного списка, сетим в лайв дату. Отображаем. Юзер вводит в EditText слово, дергаем метод вьюмодели для валидации этого слова. Если валидация прошла - увеличиваем счётчик на единицу, вытаскиваем по нему следующий элемент из списка и сетим в лайв дату и так далее
источник

AB

Alikhan Bakytbek in Android KZ
Алим Ещанов
А как тогда с observer вытащить?
Разруливай логику во ViewModel. Сходил в БД, получил список. LiveData будет типа LiveData<Note>, вместо списка.

Вначале сетишь livedatа-е первый note по полученному списку, после того как пользователь закончил вводить слово, оповещаешь viewmodel об этом.

Во viewmodel происходит валидация. Если валидация прошла, то увеличиваешь counter и вытаскиваешь из списка следующую и сетишь снова в livedata
источник

VT

Vladimir Tokarev in Android KZ
Alikhan Bakytbek
Разруливай логику во ViewModel. Сходил в БД, получил список. LiveData будет типа LiveData<Note>, вместо списка.

Вначале сетишь livedatа-е первый note по полученному списку, после того как пользователь закончил вводить слово, оповещаешь viewmodel об этом.

Во viewmodel происходит валидация. Если валидация прошла, то увеличиваешь counter и вытаскиваешь из списка следующую и сетишь снова в livedata
😅 мысли сходятся
источник

АЕ

Алим Ещанов in Android KZ
источник

АЕ

Алим Ещанов in Android KZ
источник

АЕ

Алим Ещанов in Android KZ
Это часть начала... теперь в активности которая отображает поля сделать вроде следующего Arraylist<Note> noteFrom = viewModel.getNote()? Я что то совсем запутался
источник

TB

Timur Borgalinov in Android KZ
Ребята а если сервис запускается в главном треде и там происходит тяжелая операция в середине которой пользователь закрыл приложение в менеджере, что случится? По идее же сервис перейдёт в другой процесс и продолжит работу, но что будет с операцией , она заново начнёт выполняться или завершиться?
источник

KT

Kanat Turganbay in Android KZ
Сервис по идее работает на том же треде тока он не зависит от лайфсайкла приложения, конечно если ты не выключил этот сервис во время работы приложения
источник

DA

Daniyar Amangeldy in Android KZ
Kanat Turganbay
Сервис по идее работает на том же треде тока он не зависит от лайфсайкла приложения, конечно если ты не выключил этот сервис во время работы приложения
У него не сервис там, ViewModel
источник

KT

Kanat Turganbay in Android KZ
Он же выполняет задачу на сервисе
источник