TextInputLayout должен отображать ошибку при нажатии кнопки в привязке данных - PullRequest
0 голосов
/ 09 июля 2019

Я использую TextInputLayout для имя пользователя поле, я хочу отобразить сообщение об ошибке, когда пользователь нажимает кнопку Login & имя пользователя поле пустое. Я использую привязку данных для выполнения этой операции, для этого я написал app:usernameErrorMessage="@{viewModel.usernameErrorMessage} & app:errorEnabled="true в TextInputLayout.

Теперь здесь проблема в том, что даже когда я запускаю приложение в первый раз, EditText не будет иметь никакого текста, а затем он отображает Invalid username только при запуске. Что не должно быть так, я хочу, чтобы TextInputLayout отображал ошибку, когда пользователь нажимает кнопку Login и поле пустое.

Как справиться с этим делом?

enter image description here

Ниже приведен код внутри 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...