Помогите мне, пожалуйста.
Я хочу наблюдать за некоторой строкой, использующей LiveData
.
OnChanged()
, которая запускается один раз при запуске приложения, но когда я изменяю значение string1
нажатием кнопки, onChange()
не срабатывает и информация не обновляется. TextView
продолжает показывать «Вау»
Я делаю все в точности так, как описано здесь .
ViewModel
:
class CurrentViewModel : ViewModel() {
val currentName: MutableLiveData<String> by lazy {
MutableLiveData<String>()
}
}
Фрагмент:
class CurrentFragment : Fragment(R.layout.current_fragment) {
private val viewModel: CurrentViewModel by viewModels()
var string1 = "Wow!"
override fun onActivityCreated(savedInstanceState: Bundle?)
val nameObserver = Observer<String> { newName ->
textview.text = newName }
viewModel.currentName.value = string1
viewModel.currentName.observe(activity!!, nameObserver)
button.setOnClickListener {
string1 = "some new string"
}
}