Почему бы вам просто не использовать двустороннюю привязку со свойством LiveData
?
Сначала добавьте новое свойство email
в вашу модель представления и подпишитесь на негополучите изменения:
class LoginViewModel(application: Application) : AndroidViewModel(application) {
val email = MutableLiveData<String>()
// This observer will invoke onEmailChanged() when the user updates the email
private val emailObserver = Observer<String> { onEmailChanged(it) }
init {
email.observeForever(emailObserver)
}
override fun onCleared() {
email.removeObserver(emailObserver)
}
fun onEmailChanged(newEmail: String) {
// Some code
}
}
Затем обновите представление, чтобы создать двустороннюю привязку между EditText
и свойством email
вашей модели представления:
<EditText
...
android:text="@={viewModel.email}" />
Спасибочто касается двусторонней привязки, всякий раз, когда пользователь обновляет текст в представлении, ваше свойство viewmodel будет обновляться (и наоборот).
Надеемся, что это поможет!