如何在EditViews上使用DataBinding

时间:2019-07-18 20:37:54

标签: android kotlin mvvm data-binding android-databinding

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

  

**** /数据绑定错误**** msg:在android.widget.TextView上找不到参数类型为androidx.lifecycle.LiveData的属性“ android:text”的设置器。   文件: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中的变量

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

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

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

1 个答案:

答案 0 :(得分:0)

由于文本为字符串,因此应使用Use MutableLiveData<String>()代替MutableLiveData<EditText>()