在Text View android中设置Span样式HTML文本

时间:2015-01-12 07:08:39

标签: android html string textview

当我从服务中获取html文本时,我需要在文本View上显示文本。

Managing Safely <b> End Of Course Theory Test </b> <span style="color:red;"> part1 </span>

我将此文本设置为

tv.settext(Html.fromHTML("Managing Safely <b> End Of Course Theory Test </b> <span style="color:red;"> part1 </span>"));

显示粗体但未显示红色文字。

4 个答案:

答案 0 :(得分:6)

如上所述@ρяσѕρєяKHTML不支持Html.fromHtml. span标记

您应该更改服务
OR
在代码中添加以下行,它会将span颜色html更改为字体标记,至少在您的情况下。

String yourHtmlText = yourHtmlText.replace("span style=\"color:", "font color='").replace(";\"","'").replace("</span>", "</font>");  

对于其他人,我建议您根据自己的需要频繁使用String.split,它会像魔术一样工作。

我希望这有效。
干杯:)

答案 1 :(得分:2)

您必须使用以下代码来显示来自html的数据

tv.settext(Html.fromHTML("Managing Safely <b> End Of Course Theory Test </b> <font color='red'>simple</font>"));

答案 2 :(得分:2)

正如您所见span Html.fromHtml不支持HTML font,div,p,...标记。

因此,您应该只返回来自{{1}}等服务器的受支持标签,或使用webview显示所有html标签

答案 3 :(得分:1)

单独输入文字

TextView text = ... // find or instantinate your text view.
text.setText(Html.fromHtml("<font color='#ff0000'>text</font>"));

或使用spannable string

text.setText("");
text.append("Add all your funky text in here");
Spannable sText = (Spannable) text.getText();
sText.setSpan(new BackgroundColorSpan(Color.RED), 1, 4, 0);

使用此库支持所有html标记。

https://github.com/NightWhistler/HtmlSpanner