Android双向数据绑定只能单向工作

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

我有这个问题有一段时间了,希望有人能帮我

我第一次尝试实现双向数据绑定,但遇到了一个奇怪的问题

这里的问题是,每次我从视图模型中设置实时数据的值时,UI都会更改,但当我更改UI上的“编辑文本”值时,它不会反映在视图模型的实时数据值上。 当从视图模型设置值时,双向数据绑定似乎只能单向工作

我有我的视图模型,类似这样:

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}" />