在我的表单中,我在
setError("")
字段上使用 EditText
。我的应用程序主题扩展了android:Theme.Holo
。android:errorMessageBackground
和 android:errorMessageAboveBackground
设置了深色背景的图像。
现在的问题是:错误消息的文本颜色也很暗且不可读。
我尝试更改主题中不同的
textColor
属性,但我无法找到正确的属性。
有人可以帮助我吗?
您可以使用 HTML 字体标签更改文本颜色。
但是要自定义背景颜色,您应该制作自己的自定义弹出窗口。 欲了解更多信息,请访问此链接:- android中EditText的错误文本如何写入样式?
你可以试试这个:
editText.setError(Html.fromHtml("<font color='red'>Error Message!</font>"));
在manifest.xml中执行以下操作
<resources>
<style name="LightErrorFix" parent="@android:style/Theme.Light">
<item name="android:textColorSecondaryInverse">@android:color/secondary_text_light</item>
</style>
</resources>
假设你做了这样的事情:
EditText text = (EditText) findViewById(R.id.myedittext);
您可以执行以下操作:
text.setTextColor(Color.parseColor("#FFFFFF"));
或
text.setTextColor(Color.rgb(200,0,0));
或者如果你想要/需要阿尔法:
text.setTextColor(Color.argb(0,200,0,0));
无论如何,你应该在 color.xml 中指定你的颜色(更好地维护):
<color name="myColor">#f00</color>
然后像这样使用它:
text.setTextColor(getResources().getColor(R.color.myColor));
玩得开心:)
设置属性
android:textColorPrimaryInverse="YourCOLOR"
需要的颜色。
我的回复有效,是在 kotlin 中。
private fun setErrorOnSearchView(searchView: SearchView, errorMessage: String) {
val id = searchView.context
.resources
.getIdentifier("android:id/search_src_text", null, null)
val editText = searchView.find<EditText>(id)
val errorColor = ContextCompat.getColor(this,R.color.red)
val fgcspan = ForegroundColorSpan(errorColor)
val builder = SpannableStringBuilder(errorMessage)
builder.setSpan(fgcspan, 0, errorMessage.length, 0)
editText.error = builder
}