2012-02-22 33 views
14

我想通過調用EditText.getText().clearSpans()來獲得EditText以清除其跨度。但是,如果我調用這個方法,EditText開始表現得很奇怪,換行符顯示爲盒子,然後我設置的任何跨度完全位於錯誤的地方。Android Edittext-清除跨度

所以我的問題是:如何清除和EditText跨度? (沒有調用setText() - 文本可能是數千行,並且太慢以至於無法頻繁重繪)

非常感謝!

回答

34

有同樣的問題。通過僅刪除添加到EditText的跨度類型來解決此問題。我猜clearSpans應該刪除更多的東西。我爲每種類型的跨度做了這樣的事情:

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

謝謝安德烈。其實我之前設法解決了這個問題(抱歉,我只是忘了自己回答!),但是感謝您發佈了答案 - 我相信其他人會從中受益。 – 2012-04-23 09:25:24

+1

的確,有人做到了。謝謝! – Carni 2013-05-30 12:23:08