seleccionar - Android Edittext-Tiempos de compensación
poner foco en edittext android (2)
Tenía el mismo problema. Se solucionó eliminando solo los tipos de tramos que agregué a EditText. Supongo que clearSpans elimina más de lo que debería. Hice algo como esto 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]);
Estoy tratando de obtener un EditText para borrar sus vanos llamando a EditText.getText().clearSpans()
. Sin embargo, si llamo a este método, el EditText comienza a comportarse de manera extraña, con los saltos de línea que aparecen como recuadros y cualquier intervalo que establezca en el lugar equivocado.
Así que mi pregunta es: ¿Cómo borro los vanos de y EditText? (Sin llamar a setText (), el texto puede tener miles de líneas y es demasiado lento para volver a dibujarlo con frecuencia)
¡Muchas gracias!
private void clearSpans(@NonNull final Editable editable) {
final Object[] spans = editable.getSpans(0, editable.length(), Object.class);
for (final Object span : spans) {
if (span instanceof ForegroundColorSpan || span instanceof SpannableTextView.CustomTypefaceSpan) {
editable.removeSpan(span);
}
}
}
Dependiendo del tipo de intervalos que haya agregado, es posible que deba incluir más que solo ForegroundColorSpan. El método anterior es una caída simple en el reemplazo y es fácil especificar qué se extiende para eliminar.