在ICS上,当使用基于android:Theme.Light
的主题时,使用setError(...)
时错误弹出中的文字为白色,背景也是如此。
我可以通过在我的主题中添加<item name="android:textColorPrimaryInverse">#ff000000</item>
来解决此问题。虽然这有助于我有点担心通过改变其他一些文本,使用textColorPrimaryInverse
将从白色变为黑色并且可能不可见。我只想更改显示有问题的弹出窗口的EditText
或仅针对该活动的属性。
澄清
我想更改弹出窗口的属性,最好是文本颜色,当用户在EditText
输入错误信息时,会显示错误消息。
答案 0 :(得分:1)
你可以这样做:
editText.setError(Html.fromHtml("<font color='red'>Error Message!</font>"));
答案 1 :(得分:0)
在代码中使用http://developer.android.com/reference/android/view/View.html#setBackgroundResource(int)或http://developer.android.com/reference/android/view/View.html#setBackgroundColor(int)。它们属于View,但EditText继承它们。第二种方法更容易,第一种方法更为一致。
编辑:哦,这是一个更难的问题。 也许,使用EditText.setError(CharSequence错误,Drawable图标),您可以在图标上放置错误文本?您可以为图标设置setBounds(Rect),因此,它可能足够大。图标可以是您需要的颜色。
但我使用onKey,beforeTextChanged,onTextChanged并将自己的错误消息显示为Toast。对于吐司,你可以使用通常的视图。