gpt4 book ai didi

Android数据绑定(bind)不遵守kotlin的liveData builder

转载 作者:行者123 更新时间:2023-11-29 22:56:28 24 4
gpt4 key购买 nike

Android 数据绑定(bind)不观察 kotlin 的 liveData 构建器

以下代码将创建一个 LiveData,它应该通过 XML 中的数据绑定(bind)来观察,但它不起作用

val text =
liveData(Dispatchers.Default) {
emit("Hello")
}

另一方面,如果它在 Kotlin 中被观察到,它工作正常

  vm.text.observe(lifeCycleOwner,{
binding.texti.text = it
})

xml:

 <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/texti"
android:text="@{viewModel.text}"
/>

如果我将实时数据的定义更改为:

val text = MutableLiveData("Hello")

数据绑定(bind)自动观察并设置文本

我是做错了还是 bug?

最佳答案

您是否设置了绑定(bind)的生命周期所有者?绑定(bind)初始化应如下所示:

override fun onCreate(savedInstanceState: Bundle?) {
val binding = DataBindingUtil.setContentView<MyActivityBinding>(this, R.layout.my_activity)
binding.setLifecycleOwner(this)
binding.viewModel = viewModel.get()
...
}

有关更多详细信息,请参阅:Use LiveData to notify the UI about data changes

关于Android数据绑定(bind)不遵守kotlin的liveData builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57387203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com