Android双向数据绑定只能单向工作
我有这个问题有一段时间了,希望有人能帮我 我第一次尝试实现双向数据绑定,但遇到了一个奇怪的问题 这里的问题是,每次我从视图模型中设置实时数据的值时,UI都会更改,但当我更改UI上的“编辑文本”值时,它不会反映在视图模型的实时数据值上。 当从视图模型设置值时,双向数据绑定似乎只能单向工作 我有我的视图模型,类似这样:Android双向数据绑定只能单向工作,android,android-databinding,androidx,android-livedata,android-viewmodel,Android,Android Databinding,Androidx,Android Livedata,Android Viewmodel,我有这个问题有一段时间了,希望有人能帮我 我第一次尝试实现双向数据绑定,但遇到了一个奇怪的问题 这里的问题是,每次我从视图模型中设置实时数据的值时,UI都会更改,但当我更改UI上的“编辑文本”值时,它不会反映在视图模型的实时数据值上。 当从视图模型设置值时,双向数据绑定似乎只能单向工作 我有我的视图模型,类似这样: class CreateAssignmentViewModel(): ViewModel() { val assignment = MutableLiveData<St
class CreateAssignmentViewModel(): ViewModel() {
val assignment = MutableLiveData<String>()
}
然后在我的活动xml上:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="createViewModel"
type="com.marcelo.tasks.assignments.create.CreateAssignmentViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".assignments.create.CreateAssignmentActivity">
<EditText
style="@style/Base.EditText"
android:text="@{createViewModel.assignment}" />
</LinearLayout>
</layout>
实际上,您没有在视图中设置双向数据绑定。必须使用@={}进行双向数据绑定。检查以下内容: 使用 而不是
<EditText
android:text="@{createViewModel.assignment}" />
<EditText
android:text="@={createViewModel.assignment}" />
<EditText
android:text="@{createViewModel.assignment}" />