如何在 EditView 上使用 DataBinding

How to use DataBinding on EditViews

我一直在尝试制作一个登录和注销应用程序,但我仍然无法通过使用绑定来检查写入的数据来从 EditViews 获取文本 但是每次我尝试都会出现这个错误

****/ data binding error ****msg:Cannot find the setter for attribute 'android:text' with parameter type androidx.lifecycle.LiveData on android.widget.TextView. file:C:\Users\mehmet\Desktop\andfun-kotlin-sleep-tracker-with-recyclerview\app\src\main\res\layout\register_layout.xml

这是布局中编辑视图的示例

<EditText
        android:id="@+id/email_editText_Register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:hint="@string/hint_email"
        android:importantForAutofill="no"
        android:inputType="textEmailAddress"
        **android:text="@{register.emailEditTextRegisterContext}"**
        app:layout_constraintEnd_toEndOf="@+id/editText2"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="@+id/editText2"
        app:layout_constraintTop_toBottomOf="@+id/editText2" />

这是使用观察者在 kotlin 中的变量 class

private val _emailEditTextRegisterContext = MutableLiveData<EditText>()
val emailEditTextRegisterContext: LiveData<EditText>
    get() = _emailEditTextRegisterContext

这是我用来获取文本的方法

 val emails = _emailEditTextRegisterContext.value?.text.toString()

您应该使用 MutableLiveData<String>() 而不是 MutableLiveData<EditText>(),因为文本是字符串。