Android Html.toHtml(editText.getText())返回太多的html标记

时间:2013-04-03 12:45:56

标签: android html android-edittext styleable

我正在使用SpannableString在EditText中使用下面的

设置文本样式
  str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    str.setSpan(new UnderlineSpan(), selectionStart, selectionEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

这样可以正确呈现样式文本,如下所示 你好 ** 你好 怎么样 ** yiu

嗨 - 正常

你好 - 大胆

怎么样 - 粗体+斜体

yiu - 粗体+斜体+下划线

但当我Html.toHtml(editText.getText())时,它会返回

 <p><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">h</font></font></font></font></font></font></font></font></font></font></font></font></font>
</font></font></font></font></font>
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">i</font></font></font></font></font></font></font></font></font></font></font></font>
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
 </font></font></font></font></font></font>
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">h</font></font></font></font></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><font color ="#000000">
<font size ="3"><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><b><font color ="#000000">
<font size ="3"><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">o</font></font></font></font></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3"><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><font color ="#000000"><font size ="3">w</font></font></font></font></font></font></b></font></font></font></font></font></font><b><font color ="#000000"><font size ="3"><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"> </font></font></font></font></font></font></b><font color ="#000000"><font size ="3"><font size ="3">
<font color ="#000000"><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><font size ="3">
<font color ="#000000"><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><font size ="3">
<font color ="#000000"><font color ="#000000">
<font size ="3"><b><font color ="#000000">
<font size ="3"><i><font size ="3">
<font color ="#000000"><font color ="#000000">
<font size ="3">a</font></font></font></font></i></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3">
<font size ="3"><font color ="#000000">
<font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3">
<font size ="3"><font color ="#000000">
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3"><i><font size ="3"><font color ="#000000">
<font color ="#000000"><font size ="3">r</font></font></font></font></i></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000"><font size ="3">
<font size ="3">
<font color ="#000000"><font color ="#000000">
<font size ="3"><b><font color ="#000000">
<font size ="3"><i><font size ="3">
<font color ="#000000"><font color ="#000000">
<font size ="3">e</font></font></font></font></i></font></font></b></font></font></font></font></font></font><b><font color ="#000000">
<font size ="3"><i><font size ="3"><font color ="#000000">
<font color ="#000000"><font size ="3"> </font></font></font></font></i></font></font></b><font color ="#000000"><font size ="3"><font size ="3">
<font color ="#000000"><font color ="#000000"><font size ="3">
<font color ="#000000"><font size ="3"><font size ="3">
<font color ="#000000"><font color ="#000000">
<font size ="3"><b><font color ="#000000">
<font size ="3"><i><font size ="3">
<font color ="#000000"><u><font color ="#000000"><font size ="3">y</font></font></u></font></font></i></font></font></b></font></font></font></font></font></font></font></font></font></font></font></font><font color ="#000000">
<font size ="3"><font size ="3"><font color ="#000000">
<font color ="#000000"><font size ="3"><b><font color ="#000000"><font size ="3"><i><font size ="3"><font color ="#000000"><u><font color ="#000000"><font size ="3">o</font></font></u></font></font></i></font></font></b></font></font></font></font></font></font><b><font color ="#000000"><font size ="3"><i><font size ="3"><font color ="#000000"><u><font color ="#000000"><font size ="3">u</font></font></u></font></font></i></font></font></b></p>

这是预期还是我错过了什么?建议请

2 个答案:

答案 0 :(得分:0)

试试这个:

Html.toHtml(editText.getText().toString());

希望这能为您提供所需的文字。

答案 1 :(得分:0)

嗯看起来问题出在

Spannable.SPAN_EXCLUSIVE_EXCLUSIVE

如果您阅读文档,看起来之后插入到字符串中的任何新文本都不会收到您指定的格式。为了在html中执行此操作,必须将标记添加到每个单独的字符。所以你所看到的似乎是预期的

如果您希望减少标签,请尝试使用

Spannable.SPAN_INCLUSIVE_INCLUSIVE

不同之处在于,之后插入到字符串中的任何文本都将具有与周围文本相同的格式。