우리는 Kubwa 유효성 검사 라이브러리를 사용하여 android 데이터 바인딩 라이브러리가있는 양식의 유효성을 검사하지만 EditTexts에 오류가 표시되지 않습니다.안드로이드 데이터 바인딩 - EditText SetError
뷰 모델 :
@Override
public void onLoginClick(View view) {
validator.validateEmail(user.getEmail());
validator.validatePassword(user.getPassword());
notifyChange();
if (validator.isValid()) connector.login(user);
}
@Bindable
@Override
public String getEmailError() {
return validator.getEmailErrorMessage();
}
@Bindable
@Override
public String getPasswordError() {
return validator.getPasswordErrorMessage();
}
그리고 내 XML : 그건 내가 BindingAdapter
를 생성하고 XML 속성을 변경 작동하지 않지만, 그렇지 않은 것을 깨달았다
<EditText
android:id="@+id/email"
android:text="@={viewModel.user.email}"
app:error="@{viewModel.emailError}"/> <!-- As the wiki said -->
어느 쪽이든 노력하고 있습니다.
@BindingAdapter("app:errorText")
public static void BindError(EditText view, String error){
view.setError(error);
}
는 모든 통찰력이 크게 이것은 데이터 바인딩 라이브러리를 사용하는 방법에 대한 질문입니다
'onLoginClick()'바인딩을 표시 할 수 있습니까? 아마도 활성화되지 않았습니까? 편집 텍스트 옆에 오류 아이콘이 나타 납니까? 설명서에 따르면 편집 텍스트에 포커스가있는 경우에만 팝업이 표시됩니다. 사용자 환경을 개선하기 위해 양방향 데이터 바인딩을 사용하여 전자 메일 및 암호의 유효성을 지속적으로 검사 할 수 있습니다. 또는 제출시 대신 초점 손실을 확인하십시오. –
나는 onLoginClick()을 이미 디버깅 했으므로 유효성 검사를 수행하고 두 가지 방법으로 초점을 맞추거나 포커스 손실이 더 좋을 것이라고 전적으로 동의합니다. –