У меня есть EditText, и я хочу выполнять какие-либо действия каждый раз, когда пользователь вводит значение.
В старые времена, до привязки данных с LD, у меня просто был метод в моей Деятельности, который выполняетдействие и ссылаться на него в макете, как это:
В макете:
<EditText
android:onTextChanged="textChanged()"
Теперь я использую привязку данных с LiveData.У меня есть поле в моей виртуальной машине, на которое ссылается пользовательский интерфейс и которое использует двустороннюю привязку данных, поэтому поле обновляется автоматически.Но что, если я хочу сделать что-то большее, чем просто обновить значение поля?Могу ли я определить метод для запуска других действий, например, сохранить значение в базе данных?
В макете:
<EditText
android:text="@={viewmodel.myField}"
В ViewModel:
val myField = MutableLiveData<String>()
* Примечание: я хочу, чтобы это было сделано в ВМ.Я знаю, что мог бы создать наблюдателя в Деятельности, наблюдающего за полем в ВМ, но это просто, если я хочу, чтобы какое-то изменение пользовательского интерфейса было сделано.Я хочу использовать некоторую бизнес-логику при изменении значения, а не пользовательский интерфейс.