2

我正在尝试使用 html 将某些文本格式化(添加样式)并将其设置为 textview 的文本

Spanned text =Html.fromHtml(""+newAllText);
hello.setText(text, TextView.BufferType.SPANNABLE); 

但是 Html() 方法返回 Spanned 字符串,其中删除了所有空格。我试过使用这样的html标签,<pre>但它没有帮助..

它应该像这样很好地显示(html标签后来用 from Html() 方法删除)但是所有的空格都被删除了,它看起来像这样(当它在 ui 中设置为文本时看起来像一个大的连续段落)。

有人对此有任何线索吗?

以防万一有人想查看完整代码:

String SelectedSentence =allText.substring(lastPoint, nextPoint);
String highlighted = "<font color='red'>"+SelectedSentence+"</font>";
StringBuilder newAllText = new StringBuilder(allText);
newAllText.delete(lastPoint, nextPoint+1);
newAllText.insert(lastPoint,highlighted);
newAllText = new StringBuilder("<pre>"+newAllText+"</pre>");

Spanned text =Html.fromHtml(""+newAllText);
hello.setText(text, TextView.BufferType.SPANNABLE); 
lastPoint = nextPoint;
4

1 回答 1

0

好吧,我放弃了 HTML 文本样式的整个方法,只是使用 SpannableStringBuilder 来获得我想要的相同效果

            highlighted = new SpannableStringBuilder(sb);
            highlighted.removeSpan(new BackgroundColorSpan(Color.YELLOW));
            highlighted.setSpan(new BackgroundColorSpan(Color.YELLOW),lastPoint, nextPoint, 0); 
于 2012-09-12T01:27:26.537 回答