2012-01-24 15 views
8

En ICS, cuando se usa un tema basado en android:Theme.Light, el texto en el error emergente cuando se usa setError(...) es blanco, al igual que el fondo.¿Cómo cambiar el color del texto de la ventana emergente de error para EditText?

Puedo solucionar este problema agregando <item name="android:textColorPrimaryInverse">#ff000000</item> a mi tema. Si bien esto ayuda, estoy un poco preocupado de que al hacer eso cambie algún otro texto, que use textColorPrimaryInverse, cambie de blanco a negro y tal vez no sea visible. Prefiero simplemente cambiar ese atributo para el EditText que muestra el popup en cuestión o solo para esa actividad.

Aclaración

me gustaría cambiar una propiedad, de preferencia el color del texto, de la emergente que muestra el mensaje de error cuando el usuario introduce algo mal en un EditText.

+0

También sería agradable, si dibujable fondo de la ventana emergente podría ser cambiado. ¿No has encontrado alguna forma de cambiar estas propiedades? – abbath

Respuesta

0

En código use http://developer.android.com/reference/android/view/View.html#setBackgroundResource(int) o http://developer.android.com/reference/android/view/View.html#setBackgroundColor(int). Pertenecen a View, pero EditText los hereda. El segundo método es más fácil, el primero es más consistente.

Editar: Oh, es una pregunta más difícil. Tal vez, usando EditText.setError (error de CharSequence, icono de Drawable) puede poner texto de error en el icono? Puede establecer setBounds (Rect) para el icono, por lo tanto, podría ser lo suficientemente grande. El ícono puede ser del color que necesita.

Pero uso onKey, beforeTextChanged, onTextChanged y muestro mi propio mensaje de error como un Toast. Para la tostada puede usar una vista habitual.

+0

Supongo que mi pregunta no estaba clara. No estoy tratando de cambiar el fondo del 'EditText', sino el color del texto de la ventana emergente que muestra el error. –

+0

Lo siento, luego mira la adición en la respuesta. – Gangnus

1

Puede hacerlo de esta manera:

editText.setError(Html.fromHtml("<font color='red'>Error Message!</font>")); 
Cuestiones relacionadas