如何在 TextView 中显示 HTML?

新手上路,请多包涵

我有简单的 HTML

 <h2>Title</h2><br>
<p>description here</p>

我想在 TextView 中显示 HTML 样式的文本。这个怎么做?

原文由 UMAR-MOBITSOLUTIONS 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 644
2 个回答

您需要使用 Html.fromHtml() 在 XML 字符串中使用 HTML。在布局 XML 中简单地引用带有 HTML 的字符串是行不通的。

这是你应该在 Java 中做的

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    textView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>", Html.FROM_HTML_MODE_COMPACT));
} else {
    textView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>"));
}

在科特林中:

 textView.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    Html.fromHtml(html, Html.FROM_HTML_MODE_COMPACT)
} else {
    Html.fromHtml(html)
}

原文由 David Hedlund 发布,翻译遵循 CC BY-SA 4.0 许可协议

setText(Html.fromHtml(bodyData)) 在 api 24 之后被 弃用。现在你必须这样做:

  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
      tvDocument.setText(Html.fromHtml(bodyData,Html.FROM_HTML_MODE_LEGACY));
 } else {
      tvDocument.setText(Html.fromHtml(bodyData));
 }

原文由 Shohan Ahmed Sijan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题