2012-02-22 37 views
14

Estoy tratando de obtener un EditText para borrar sus tramos llamando al EditText.getText().clearSpans(). Sin embargo, si llamo a este método, EditText comienza a comportarse de manera extraña, con alimentaciones de línea que aparecen como cuadros y cualquier tramo que luego establezco estando completamente en el lugar equivocado.Android Edittext- Clearing Spans

Así que mi pregunta es: ¿Cómo borro los tramos desde y EditText? (Sin llamar a setText(): el texto puede tener miles de líneas de longitud y es demasiado lento para volver a dibujarlo con frecuencia)

¡Muchas gracias!

Respuesta

34

Tenía el mismo problema. Lo resolvió quitando solo los tipos de tramos que agregué a EditText. Creo que clearSpans elimina más de lo que debería. Hice algo así para cada tipo de tramo que utilicé:

toRemoveSpans = et.getSpans(0, et.getText().length(), ForegroundColorSpan.class); 
for (int i = 0; i < toRemoveSpans.length; i++) 
    et.removeSpan(toRemoveSpans[i]); 
+1

Gracias Andre. En realidad, había logrado resolverlo antes (¡lo siento, me olvidé de responderlo!), Pero gracias por publicar la respuesta, estoy seguro de que alguien más se beneficiará de ello. –

+1

De hecho, alguien lo hizo. ¡Gracias! – Carni