textinputlayout с ошибками и показывает ошибки
Итак, у меня есть форма входа, когда пользователь нажимает кнопку входа, я проверяю входные данные.
Во-первых, я нажимаю кнопку входа в систему textinputlayout.seterrorenabled(false)
, тогда, когда вызов API закончен, и у меня есть ошибка в моем editttext, я звоню textinputlayout.seterrorenabled(true)
, textinputlayout.seterror(message)
, Все хорошо, теперь я снова нажимаю на логин и повторяю тот же процесс. textinputlayout.seterrorenabled(false)
а затем после завершения вызова API textinputlayout.seterrorenabled(true)
, textinputlayout.seterror(message)
, Однако на этот раз сообщение не появляется. В чем проблема?
<android.support.design.widget.TextInputLayout
android:id="@+id/usernameField1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/usernameField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/user_name"
android:textColorHint="#808080"
android:paddingBottom="@dimen/tendp"
android:paddingLeft="@dimen/tendp"
android:paddingRight="@dimen/tendp"
android:paddingTop="@dimen/tendp"
android:textSize="@dimen/textSize" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/passwordField1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/passwordField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/password"
android:textColorHint="#808080"
android:paddingBottom="@dimen/tendp"
android:inputType="textPassword"
android:paddingLeft="@dimen/tendp"
android:paddingRight="@dimen/tendp"
android:paddingTop="@dimen/tendp"
android:textSize="@dimen/textSize" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:background="?attr/selectableItemBackground"
android:text="@string/login"
android:visibility="gone"
android:textColor="@android:color/white"
android:textSize="@dimen/textSize" >
</Button>
final Button login = (Button) findViewById(R.id.login);
// login.setOnClickListener(new OnClickListener() {
login.setOnClickListener(here i set my textinputlayout to errorenabled false or seterror null // start an asynctask
here in asynctask onpostexecute i set the errorenabled(true) and set error( the message)
2 ответа
Вы не устанавливаете setError в textinputlayout. Вы установили для редактирования текста.
EditText usernameField=(EditText)findViewById(R.id.usernameField);
EditText passwordField=(EditText)findViewById(R.id.passwordField);
Когда нажмите на кнопку, затем добавьте
usernameField.setError("error message");
passwordField.setError("error message");
Не использовать textinputlayout.seterrorenabled(true)
или же textinputlayout.seterrorenabled(true)
просто textinputlayout.seterror(message)
если вы хотите отобразить сообщение или textinputlayout.seterror(null)
если ты не