2012-02-22 16 views
14

Sto cercando di ottenere un EditText per cancellare i suoi intervalli chiamando EditText.getText().clearSpans(). Tuttavia, se chiamo questo metodo, EditText inizia a comportarsi in modo strano, con i feed di riga che appaiono come caselle e spans, quindi ho impostato di trovarmi completamente nel posto sbagliato.Android Edittext- Clearing Spans

Quindi la mia domanda è: come si cancellano gli span e EditText? (Senza chiamare setText() - il testo può essere lungo migliaia di righe ed è troppo lento per ridisegnarlo di frequente)

Grazie mille!

risposta

34

Aveva lo stesso problema. Risolto rimuovendo solo i tipi di span che ho aggiunto a EditText. Immagino che clearSpans rimuova più di quanto dovrebbe. Ho fatto qualcosa di simile per ogni tipo di intervallo che ho usato:

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

Grazie Andre. In realtà ero riuscito a risolverlo prima (scusa se mi sono semplicemente dimenticato di rispondere da solo!), Ma grazie per aver postato la risposta, sono sicuro che qualcun altro ne trarrà beneficio. –

+1

In effetti, qualcuno ha fatto. Grazie! – Carni