Android 使用数据绑定库验证edittext输入

Android 使用数据绑定库验证edittext输入,android,kotlin,android-databinding,android-mvvm,Android,Kotlin,Android Databinding,Android Mvvm,我正在使用数据绑定库。我有一个布局,其中包含一些edittext,用于获取基本用户输入,如姓名、电子邮件、密码等。我希望在单击按钮时在viewmodel中验证这些输入。我对如何在视图模型中单击按钮时访问edittext输入有点困惑 <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/tools

我正在使用数据绑定库。我有一个布局,其中包含一些edittext,用于获取基本用户输入,如姓名、电子邮件、密码等。我希望在单击按钮时在viewmodel中验证这些输入。我对如何在视图模型中单击按钮时访问edittext输入有点困惑

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">

<data>
    <variable
        name="ViewModel"
        type="me.example.model.LoginViewModel"/>

 <EditText
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textSize="13sp" />

  <Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="center"
     android:text="Submit"
     android:onClick="@{() -> ViewModel.onSubmitClick()}"/>

</layout>

您可以在按钮的绑定表达式中引用EditText:

 android:onClick="@{() -> ViewModel.onSubmitClick(name.getText().toString())}"
需要注意的是,执行此操作时,蛇壳将变成骆驼壳,因此如果视图的
android:id
name\u edit\u text
,则在绑定表达式中使用
nameEditText.getText()

单击该按钮将在ViewModel中调用此方法:

fun onSubmitClick(editTextString: String) {
    Log.d("LOG", editTextString)
}

您能告诉我如何获取文本吗?我正在使用字符串,它给我带来了错误。我添加了一个
toString()
。请参阅我的编辑。EditText#getText()返回一个可编辑的
,因此这可能是导致问题的原因。
fun onSubmitClick(editTextString: String) {
    Log.d("LOG", editTextString)
}