如何在android中的EditText上呈现HTML

时间:2017-07-14 11:16:20

标签: android html html-rendering

Hellos Mates,

当我尝试将字符串更改为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>

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

<p dir="ltr">Testing<br>
<b>Bold</b><br>
<i>Italic</i><br>
<u>Underline</u></p>

因为跨度而没有渲染。

请帮忙。任何建议

1 个答案:

答案 0 :(得分:1)

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

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

因此,如果传递为简单<span>

,则无法呈现String

但您可以使用Html.FromHtml()

渲染它
 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 )) 
 }

Html.fromHtml supports following tags

<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>