如何在android中在EditText上呈现HTML

如何在android中在EditText上呈现HTML,android,html,html-rendering,Android,Html,Html Rendering,朋友们 当我试图将字符串更改为html并在EditText控件上呈现相同的字符串时,它无法正常工作 Span无法识别为HTML <span style="font-weight: bold;">Bold</span> <div><span style="font-style: italic;">ITALIC</span></div> <div><span style="text-decoration-lin

朋友们

当我试图将字符串更改为html并在EditText控件上呈现相同的字符串时,它无法正常工作

Span无法识别为HTML

<span style="font-weight: bold;">Bold</span>
<div><span style="font-style: italic;">ITALIC</span></div>
<div><span style="text-decoration-line: underline;">UNDERLINE</span></div>
<div><span style="text-decoration-line: underline;"><br></span></div><div><ul><li>hieeeeeeeeeeeeee<br></li></ul></div>
粗体
斜体
强调

  • hieeeeeeee
如何在EditText中呈现给定的HTML。如果我谈论下面的HTML,它会被渲染

<p dir="ltr">Testing<br>
<b>Bold</b><br>
<i>Italic</i><br>
<u>Underline</u></p>
测试
粗体
斜体
下划线

由于跨度的原因,无法对其进行渲染


请帮我做同样的事情。任何建议

由于EditText默认从TextView扩展而来,因此它支持以下标记:

<a> 
<annotation> 
<b> 
<big> 
<font> 
<i> 
<li> 
<marquee> 
<small> 
<strike> 
<sub> 
<sup> 
<tt> 
<u>
Html.fromHtml


Option#1:编写代码,将您收到的HTML翻译成
HTML.fromHtml()
可以处理的HTML。选项#2:编写代码来解析您收到的HTML,并使用您自己的跨度生成您自己的
span
对象。您可以按照以下步骤操作:
 String text = "<span style=\"font-weight: bold;\">Bold</span>";
 if (Build.VERSION.SDK_INT >= 24) {
     // for 24 api and more
     editText.setText(Html.fromHtml(text , Html.FROM_HTML_MODE_LEGACY)) 
 } else {
     // or for older api
     editText.setText(Html.fromHtml(text )) 
 }
<br>
<p>
<ul>
<li>
<div>
<span>
<strong>
<b>
<em>
<cite>
<dfn>
<i>
<big>
<small>
<font>
<blockquote>
<tt>
<a>
<u>
<del>
<s>
<strike>
<sup>
<sub>
<img>