2012-01-24 45 views
8

在ICS上,當使用基於android:Theme.Light的主題時,錯誤彈出框中的文字使用setError(...)時爲白色,背景爲白色。如何更改EditText的錯誤彈出窗口的文本顏色?

我可以通過將<item name="android:textColorPrimaryInverse">#ff000000</item>添加到我的主題來解決此問題。雖然這有助於我擔心通過改變其他文字,使用textColorPrimaryInverse將從白色變爲黑色,並且可能不可見。我寧願只更改EditText的該屬性,即顯示彈出窗口或者僅針對該活動。

澄清

我想改變的屬性,優選的文本顏色,彈出顯示錯誤消息的當用戶輸入一些錯誤成EditText

+0

這也將是不錯的,如果彈出窗口的背景繪製可以改變。你有沒有找到任何方法來改變這些屬性? – abbath

回答

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並顯示我自己的錯誤信息作爲Toa​​st。對於敬酒,您可以使用平常的視圖。

+0

我想我的問題並不清楚。我不想改變'EditText'的背景,而是顯示錯誤的彈出框的文本顏色。 –

+0

對不起,然後看看答案中的補充。 – Gangnus

1

你可以這樣說:

editText.setError(Html.fromHtml("<font color='red'>Error Message!</font>")); 
相關問題