2012-02-22 16 views
14

EditText.getText().clearSpans()を呼び出してEditTextでスパンをクリアしようとしています。しかし、私がこのメソッドを呼び出すと、EditTextは、行送りがボックスとして表示され、スパンが完全に間違った場所に設定されて、不思議な振る舞いをします。Android Edittext- Clearing Spans

私の質問は次のとおりです。スパンと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

ありがとうございました。実際に私はそれを解決することができました(申し訳ありません、私は自分でそれを忘れてしまいました!)。しかし、回答を投稿してくれてありがとう - 私は誰かがそれから恩恵を受けることを確信しています。 –

+1

確かに、誰かがしました。ありがとう! – Carni