Мой LiveData
не работает.
ViewModel
:
private var _email = MutableLiveData<String>()
fun setEmail(){
_email.postValue("azizjon@bla.mn")
}
fun getEmail(): LiveData<String>{
return _email
}
Fragment
* onViewCreated
метод:
mViewModel.getEmail().observe(viewLifecycleOwner, Observer {
tvEmail.text = it
})
mViewModel.setEmail() //Trying to post data to my LiveData.
Приведенный выше код не работает, так как tvEmail
не работает чейнинг.
Однако, если я доверяю кнопке для публикации данных в LiveData следующим образом, она работает:
//Inside fragment again
button.setOnClickListener {
mViewModel.setEmail()
}
Когда пользователь нажимает кнопку, текст в tvEmail
меняется. Если пользователь не нажимает, ничего не происходит. Что мне здесь не хватает?
Редактировать:
Я только что проверил код с Activity
. Удивительно, но для Activity
с он работает, но не для Fragment
с.