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