2011-07-19 12 views
21

En mi formulario utilizo setError("") en un campo EditText. Mi aplicación-tema se extiende android:Theme.Holo.
He configurado manualmente una imagen con fondo oscuro para android:errorMessageBackground y android:errorMessageBackgroundAbove.Qué atributo de tema cambia el color del texto de un mensaje de error de EditText

Y ahora aquí está el problema: el color del texto del mensaje de error también es muy oscuro y no se puede leer.

He intentado cambiar diferentes atributos textColor en mi tema, pero no he podido encontrar el correcto.

¿Alguien podría ayudarme, por favor? ¡Gracias! Chris

+6

Ok, he encontrado una solución. De hecho, no pude encontrar el atributo específico del tema, que debe ser ampliado. Pero se puede establecer # ffffffff en el color nedded. Eso hizo el truco para mí. Esto no está colisionando con otros colores en mi aplicación, porque configuré los colores de texto para cada tipo de elemento en su propio conjunto de estilos. Espero que esto ayude. – Chris

+0

Agregue eso como respuesta a su propia pregunta. – Macarse

+1

¿Podría decirme cómo logró establecer el fondo utilizando errorMessageBackground? He establecido minSDK en 7 y objetivo en 16 y no puedo usar este atributo en mi tema, pero todo lo que obtengo es: error: Error: no se encontraron recursos que coincidan con el nombre de pila: attr 'errorMessageBackground' . Mi pregunta al respecto: http://stackoverflow.com/questions/14127710/change-color-of-edittexts-error-message?lq=1 – scana

Respuesta

0

do siguiente en manifest.xml

<resources> 
    <style name="LightErrorFix" parent="@android:style/Theme.Light"> 
     <item name="android:textColorSecondaryInverse">@android:color/secondary_text_light</item> 
    </style> 
</resources> 
0

establezca la propiedad android:textColorPrimaryInverse="YourCOLOR" al color nedded.

0

Suponiendo que algo hizo la siguiente manera:

EditText text = (EditText) findViewById(R.id.myedittext); 

puede hacer lo siguiente:

text.setTextColor(Color.parseColor("#FFFFFF")); 

o

text.setTextColor(Color.rgb(200,0,0)); 

o si quiere/necesita una lpha:

text.setTextColor(Color.argb(0,200,0,0)); 

De todos modos, debe especificar los colores en su color.xml (wayyy mejor que se mantenga):

<color name="myColor">#f00</color> 

y luego usarlo como esto:

text.setTextColor(getResources().getColor(R.color.myColor)); 

Diviértete :)

+1

¿No cambiará esto el color de EditText y no el error popover? –

+0

esto no cambia el color del mensaje de error – commonSenseCode

1

Puedes probar este:

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

Mi respuesta funciona, está en 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 
} 
Cuestiones relacionadas