我想使用 Data Binding 和 BindingAdater 通过按钮单击验证表单
单击时将验证电子邮件。但我不知道 BindingAdapter 按钮如何
并返回 TextInputLayout 错误
布局
<data>
<variable
name="loginViewModel"
type="LoginViewModel" />
</data>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/layout_login_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_email="@{loginViewModel.emailText}"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edt_login_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:text="@={loginViewModel.emailText}" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="@string/form_login"
android:onClick="?????"
android:textSize="@dimen/text_default" />
登录视图模型
val emailText = MutableLiveData<String>()
登录绑定适配器
@BindingAdapter("layout_email")
fun layout_email(view: TextInputLayout, email: String?) {
if (email.isEmpty) {
view.error = "Not Null"
} else {
when {
email.leght <6 -> view.error = "your email < 6"
else -> view.error = null
}
}
}