我正在使用setError()
向EditText
显示错误消息。我想更改setError()
消息的背景颜色,默认为黑色。我搜索了几乎所有地方,但我无法得到一个正确的解决方案,虽然有问题。
你必须将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>
Kotlin中的代码:
inputLayout.isErrorEnabled = true
inputLayout.setErrorTextColor(ColorStateList.valueOf(Color.RED))
inputLayout.error = ERROR MESSAGE
你可以像这样动态地使用setError()的java来改变背景颜色
EditText.setError(“你的错误字符串”); EditText.setErrorColor(Color.parseColor( “#000000”));
或EditText.setError(“你的错误字符串”); EditText.setErrorColor(Color.BLUE);