Password field part of my xml code:
<android.support.percent.PercentRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
...
<android.support.design.widget.TextInputLayout
android:layout_below="@+id/uname_ly"
android:id="@+id/text_input_layout_passwd"
app:layout_widthPercent="70%"
android:layout_centerHorizontal="true"
app:layout_heightPercent="10%"
app:layout_marginTopPercent="0%"
app:layout_marginBottomPercent="0%"
android:adjustViewBounds="true"
android:textColorHint="@color/editTextHintColor"
app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout"
>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/nopasswd"
android:inputType="textPassword"
android:maxLines="1"
android:textColor="@color/editTextTextColor" />
</android.support.design.widget.TextInputLayout>
...
How to i remove this overlay red exclamation mark when call setError() ?
[Update the style]
<style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/editTextHintColor</item>
</style>
Use setError(CharSequence error, Drawable icon)
method. Set the drawable
as null:
editText.setError("Pls provide email", null);
TextInputLayout
is now part of the new material package. Here is an update on how I got a password field with validation working:
Layout:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginPasswordInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/grid"
android:hint="@string/onboarding_hint_password"
app:errorEnabled="true"
app:passwordToggleContentDescription="@string/onboarding_toggle_description_password"
app:passwordToggleEnabled="true"
app:passwordToggleTint="?colorAccent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginPasswordInputText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start|center"
android:inputType="textPassword"
android:lines="1"
tools:text="@string/onboarding_hint_password" />
</com.google.android.material.textfield.TextInputLayout>
Setting the error message and hiding the icon in code can then be achieved with the following:
loginPasswordInputLayout.error = errorMessage
// Error icon overlaps with password visibility toggle, so remove it:
loginPasswordInputLayout.setErrorIconDrawable(0)
This way you get the red (or colour of your choice) text and underline, but the password visibility toggle icon stays fully accessible.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With