2

我正在使用 TextView 显示一些我从 HTML 格式化的文本:

Spanned s = Html.fromHtml(getString(R.string.disclaimer));
tvDisclaimer.setText(s);

文本在strings.xmlusing CDATA 中:

<string name="disclaimer">
    <![CDATA[
    <p>blablabla</p>
    <ul>
      <li>foo
      <li>bar
    </ul> 
    ]]>
</string>

现在的重点是,整个事情都以IndexOutOfBoundsExceptionin崩溃Choreographer。它适用于一些简单的 HTML,但在某些时候,我只需添加一个字符 (ø) 就可以让它崩溃。删除角色使其工作。

如果Html.fromHtml()不是要走的路,我可以用什么来在我的应用程序中获得一些体面的富文本?

4

2 回答 2

1

我想出了怎么做。如评论中所述,该Html.fromHtml()方法仅支持有限的 HTML 集。它可以通过使用来完成WebView

    WebView wvDisclaimer = (WebView)findViewById(R.id.wvDisclaimer);
    wvDisclaimer.loadDataWithBaseURL("about:blank", 
            getString(R.string.disclaimer), "text/html", "utf-8", "about:blank");
于 2012-10-10T19:39:28.517 回答
0

我通过使用以下代码解决了这个问题:

<string name="disclaimer">
<![CDATA[
<p>blablabla</p>
    <br>&#8226; &nbsp;foo
    <br>&#8226; &nbsp; bar
]]>
</string>

希望能帮助到你。

于 2014-09-24T08:44:28.823 回答