如何在Edittext中更改setError()的背景颜色?

时间:2019-03-11 13:30:56

标签: android android-edittext

我正在显示从setError()EditText的错误消息。 我想更改setError()消息的背景颜色,默认为黑色。 我几乎在所有地方都进行了搜索,但是尽管有一些疑问,我也找不到正确的解决方案。

2 个答案:

答案 0 :(得分:0)

您必须将EditText包装在TextInputLayout中(它附带了一些很酷的动画),然后您可以为EditText设置任何颜色。

xml:

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/inputLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="36dp"
                app:passwordToggleEnabled="true"
                app:passwordToggleDrawable="@drawable/selector_password_toggle"
                app:passwordToggleTint="@android:color/black"
                app:errorTextAppearance="@style/errorText"
                app:hintTextAppearance="@style/hintText">

            <EditText
                    android:id="@+id/passwordInput"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/registration_hint_password"
                    android:inputType="textPassword"/>

        </com.google.android.material.textfield.TextInputLayout>

科特林代码:

        inputLayout.isErrorEnabled = true
        inputLayout.setErrorTextColor(ColorStateList.valueOf(Color.RED))
        inputLayout.error = ERROR MESSAGE

答案 1 :(得分:0)

您可以使用setError()的Java动态更改背景颜色

EditText.setError(“您的错误字符串”); EditText.setErrorColor(Color.parseColor(“#000000”));

或 EditText.setError(“您的错误字符串”); EditText.setErrorColor(Color.BLUE);