I made a small workaround for myself. It creates a new spannable at modified intervals.
final Spannable revertSpans(Spanned stext) { Object[] spans = stext.getSpans(0, stext.length(), Object.class); Spannable ret = Spannable.Factory.getInstance().newSpannable(stext.toString()); if (spans != null && spans.length > 0) { for(int i = spans.length - 1; i >= 0; --i) { ret.setSpan(spans[i], stext.getSpanStart(spans[i]), stext.getSpanEnd(spans[i]), stext.getSpanFlags(spans[i])); } } return ret; }
Using:
TextView tv = (TextView)finViewById(R.id.my_text_view); Spanned stext = Html.fromHtml(text, null, myTagHandler); Spannable sreverted = revertSpans(stext); tv.setText(sreverted);
Perhaps this is helpful.
source share