gpt4 book ai didi

java - Android Architecture Components如何实现对象与ViewModel的双向绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:49 25 4
gpt4 key购买 nike

这是一个非常基本的 View 模型

class MainViewModel: ViewModel() {
val text = MutableLiveData<String>()
val person = MutableLiveData<Person>()
}

我正在尝试实现如下所示的双向绑定(bind)

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@={viewModel.text}"/>

这按预期工作,但在绑定(bind)对象时:

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@={viewModel.person.name}"/>

我收到一个错误:表达式 viewModelPersonGetValue.getName() 无法反转:双向绑定(bind)无法解析 java.lang.String 属性“名称”的 setter

看来我遗漏了什么,有什么想法吗?

(我使用的是 Android Studio 3.2 canary 1)

最佳答案

这应该适用于 Android Studio 3.1 及更高版本,只要您不忘记包含

val binding: ActivityMainBinding = ...
binding.viewModel = viewModel
binding.setLifecycleOwner(this) // The editText won't update without this

关于java - Android Architecture Components如何实现对象与ViewModel的双向绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657342/

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