Я использую TextInputLayout
для имя пользователя поле, я хочу отобразить сообщение об ошибке, когда пользователь нажимает кнопку Login
& имя пользователя поле пустое.
Я использую привязку данных для выполнения этой операции, для этого я написал app:usernameErrorMessage="@{viewModel.usernameErrorMessage}
& app:errorEnabled="true
в TextInputLayout
.
Теперь здесь проблема в том, что даже когда я запускаю приложение в первый раз, EditText
не будет иметь никакого текста, а затем он отображает Invalid username
только при запуске. Что не должно быть так, я хочу, чтобы TextInputLayout
отображал ошибку, когда пользователь нажимает кнопку Login
и поле пустое.
Как справиться с этим делом?
![enter image description here](https://i.stack.imgur.com/BicWt.png)
Ниже приведен код внутри LoginViewModel.java:
@BindingAdapter("app:usernameErrorMessage")
public static void setUsernameErrorMessage(TextInputLayout view, String errorMessage)
{
view.setErrorEnabled(false);
view.setError("Invalid username");
}
Ниже приведен XML-код:
<android.support.design.widget.TextInputLayout
android:id="@+id/userName_til"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:hint="Username/Email"
app:errorEnabled="@{viewModel.userNameErrorVisibility}"
android:textSize="16sp"
android:theme="@style/TextLabel"
app:usernameErrorMessage="@{viewModel.usernameErrorMessage}">
<android.support.design.widget.TextInputEditText
android:id="@+id/et_user_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="12dp"
android:text="@={viewModel.userName}"
android:textColor="@color/colorWhite"
android:textSize="16sp" />
</android.support.design.widget.TextInputLayout>