Chcę użyć TextInputLayout z moją nową aplikacją. Mam taki układTextInputLayout usuwa styl EditText po ustawieniu właściwości setError na null
***
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:textColorHint="@color/text_color"
app:hintTextAppearance="@style/HintTextAppearance.TextInputLayout"
app:errorTextAppearance="@style/ErrorTextAppearance.TextInputLayout">
<EditText
android:id="@+id/input_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="@string/hint_email"
android:background="@drawable/edit_text_border_radius"
android:padding="10dp"
android:drawableLeft="@drawable/ic_acc"/>
</android.support.design.widget.TextInputLayout>
***
Na mojej aktywności mam walidacji jak poniżej:
private boolean validatePassword() {
if (inputPassword.getText().toString().trim().isEmpty()) {
inputLayoutPassword.setError(getString(R.string.err_msg_password));
requestFocus(inputPassword);
return false;
} else {
inputLayoutPassword.setError(null);// it removes @drawable/edit_text_border_radius style from EditText
inputLayoutPassword.setErrorEnabled(false);
}
return true;
}
nie działa poprawnie. ale tak, jakbyś zauważył, że zadeklarowałem @ drawable/edit_text_border_radius zasób dla EditText. I jeśli po raz pierwszy nie wypełnię pola hasła, zmieni się kolor tła na czerwony. Ponieważ jest to domyślny kolor dla zakresu błędu TextInputLayout. Ale jeśli wypełnię to samo pole pewnymi wartościami, czerwony zakres błędu zniknie, ale element EditText zapomni o tym, że jest to zasób tła (@ drawable/edit_text_border_radius) ustawiony wcześniej.
faktycznie gdzie ustawiasz zarówno kolor – Sree
@Sree, przepraszam jakie kolory? – AEMLoviji
mam na myśli czerwony i inny – Sree