【问题标题】:Set Span style HTML text in Text View android在文本视图android中设置跨度样式HTML文本
【发布时间】:2015-03-09 22:05:36
【问题描述】:

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

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>"));

它显示粗体但不显示红色文本。

【问题讨论】:

标签: android html string textview


【解决方案1】:

单独输入文字

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

或使用可跨行字符串

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

【讨论】:

  • 请阅读我的问题。我只是想显示我从服务器获取的文本。
【解决方案2】:

正如@ρяσѕρєя K 上面所说,Html.fromHtml. 不支持HTML span 标签

您应该更改服务

在您的代码中添加以下行,它会将跨度颜色 html 更改为字体标签,至少在您的情况下。

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

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

我希望这行得通。
干杯:)

【讨论】:

    【解决方案3】:

    如您所见,Html.fromHtml 不支持HTML Tags Supported By TextView HTML span 标签。

    所以你应该只从服务器返回支持的标签,比如font,div,p,...,或者使用 webview 来显示所有的 html 标签

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 我从服务中得到的字符串 我所要做的就是显示文本。
      • stackoverflow.com/questions/12285515/…span 在 android 中不支持,您必须要求服务器端开发人员发送字体标签,或者您必须最终将 span 更改为字体
      猜你喜欢
      • 2011-12-09
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 2011-08-30
      • 2015-04-01
      • 1970-01-01
      相关资源
      最近更新 更多