изменение значения в liveData? (в частности получать изменение из editText по мере ввода)
Никак. Кидаешь листенер на эдит текст и переопределяешь его методы
Мде, фигово
А что фигового?
ну вот забайндить текст можно, есть two-way binding, а получить значение нормально нельзя
Не пойму где нельзя получить значение. Кидаешь TextWatcher и методе тебе приходит вся строка
в viewModel надо получить. как на вью то понятно
Зачем?
ну в данном случае кейс - editText - поисковый запрос, при изменении отправляется значение на сервер. Это бизнес логика
Что мешает переопределить во вью и пулять лайвдату во вьюмодель? А в вм уже слать запросы.
ну вот есть у меня liveData<String> в vm, как мне из этой лайфдаты вытащить значение по onChanged без livecycleOwner?
😂 Ну вот и разбираюсь с нативом) Но вот байндинги какие-то корявые после шарпа)
Что мешает подписаться на лайвдату внутри вм уж тогда? Сделать метод в вм onChange и вызывай его со вью.
ну так подписаться можно или толкьо observerForever или с livecycleOwner
Хм любопытно
Та есть кучу разных биндингов, дата биндинг, как минимум. Но тащить дата биндинг в проект всегда не хотелось.
Овнер - тот экран на котором эдитВью. Или смущает то что во вьюмодели его обсервить не положено потому что она о вью ничего знать не должна? Ну дык альтернатива лайфдате вообще коллбэки из вью.
Именно. В vm не должно быть view
Ну или будет не по феншую или будет коллбэк из него же дергаться на каждый символ
Ну лучше уж второе
Обсуждают сегодня