如何在android textview中显示<ul> <li>?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

我有ul和li的字符串,我试图用textview中的HTML格式显示它们。 textView.setText(Html.fromHtml(myHtmlText)); 但是textview显示纯文本。我怎么能在textview中格式化ul和li标签?

提问于
用户回答回答于

静态字符串资源中的标签由android.content.res.StringBlock解析,这是一个隐藏类。我浏览了课程并确定了哪些标签受支持:

<a> (supports attributes "href")
<annotation>
<b>
<big>
<font> (supports attributes "height", "size", "fgcolor" and "bicolor", as integers)
<i>
<li>
<marquee>
<small>
<strike>
<sub>
<sup>
<tt>
<u>

出于某种原因,Html.fromHtml()处理的是不同于静态文本支持的一组标签。以下是标签列表:

<a> (supports attribute "href")
<b>
<big>
<blockquote>
<br>
<cite>
<dfn>
<div>
<em>
<font> (supports attributes "color" and "face")
<i>
<img> (supports attribute "src". Note: you have to include an ImageGetter to handle retrieving a Drawable for this tag)
<p>
<small>
<strong>
<sub>
<sup>
<tt>
<u>
用户回答回答于

你可以使用Html.TagHandler。

在你的情况下,它会是这样的:

public class UlTagHandler implements Html.TagHandler{
    @Override
    public void handleTag(boolean opening, String tag, Editable output,
                          XMLReader xmlReader) {
            if(tag.equals("ul") && !opening) output.append("\n");
            if(tag.equals("li") && opening) output.append("\n\t•");
    }
}

和:

textView.setText(Html.fromHtml(myHtmlText, null, new UlTagHandler()));

扫码关注云+社区