I have an EditText as password input like this
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:imeActionId="@+id/login"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionUnspecified"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />
</android.support.design.widget.TextInputLayout>
It's working, but when there's an error the error icon shwon twice and it's on top of show password icon.
My validation code to show the error :
if (success) {
finish();
startMainActivity();
} else {
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
Same behavior for material version 1.1.0-alpha10, even if you set an error into TextInputLayout. You can avoid it by adding to the TextInputLayout this line :
app:errorIconDrawable="@null"
With this code, you can remove toggle while showing the error. you can show toggle while user writing anything. Don't remember, you should give id to text input layout
Don't call
setError
on theEditText
, useTextInputLayout
's setError()It seems that it is a bug after updating gradle dependencies to 24+. Please, check this answer. I had all my
setError()
working fine before that. Plus, you hadn't to ask for focus in order to display the error.