2

ばかげた質問をしている場合は申し訳ありませんが、テキストビューのテキストからスパンを削除する方法を知りたいです。これは、私のスパンメソッドがどのように見えるかです。

public CharSequence setTextStyleItalic(CharSequence text) {
    StyleSpan style = new StyleSpan(Typeface.ITALIC);
    SpannableString str = new SpannableString(text);
    str.setSpan(style, 0, text.length(), 0);
    return str;
}

これが私がそれを呼ぶ方法です。

tvTitle.setText(setTextStyleItalic(tvTitle.getText()));

removeSpan() を使用して Java でこの斜体のスパンを削除する方法を本当に知りたいです。

4

3 に答える 3

8

のテキストを取得してTextViewキャストするとSpannableString、メソッドを使用しgetSpans(int queryStart, int queryEnd, Class<T> kind)てこれらのスパンを反復処理し、それらを削除できます

SpannableString ss=(SpannableString)txtView.getText();
ForegroundColorSpan[] spans=ss.getSpans(0, txtView.getText().length(), ForegroundColorSpan.class);
for(int i=0; i<spans.length; i++){
  ss.removeSpan(spans[i]);
}
于 2015-03-24T03:16:46.290 に答える
1

最初に getSpans() を使用してスパンからテキストを取得します

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

これが役立つと思います

于 2013-08-02T06:11:25.310 に答える