Lyan Dwi Pangestu Lyan Dwi Pangestu - 3 months ago 51
Android Question

EditText error icon and show password missplaced

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.

error icon missplaced

My validation code to show the error :

if (success) {
finish();
startMainActivity();
} else {
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}

Answer

Don't call setError on the EditText, use TextInputLayout's setError()