android TextView webView 显示 html table 标签内容

1.使用jsoup解析html的table中的文本信息html

2.TextView 是不支持 HTML 标签和样式的,只支持一些固定的标签和样式,之因此不使用 webview 是由于 webview 过重了,而我有好多个 TextView 后台返回的都是简单的 HTML,最好让后台同事只返回 TextView 支持的标签,毕竟 TextView 不是 WebView, TexView 只支持简单的固定标签,android7.0( api level 24 ) 有一个方法能够本身处理标签(可经过 ImageGetterTagHandler 本身处理标签)android

public static Spanned fromHtml(String source, int flags, ImageGetter imageGetter,
            TagHandler tagHandler)

可是为了兼容低版本,咱们还不能使用这个方法。因此只能本身解析转换,能够用正则匹配把一些不支持的 Tag 转为支持的 Tag,或转为原生控件添加到 View  中。web

String s = "<table><tr><td>col1</td><td>col2</td></tr><tr><td>col3</td><td>col4</td></tr></table>";
          s = s.replaceAll("<table>", "");
          s = s.replaceAll("</table>", ""); s = s.replaceAll("<tr>", "");
          s = s.replaceAll("</tr>", "<br/>"); s = s.replaceAll("<td>", " ");
          s = s.replaceAll("</td>", " ");
          textView.setText(Html.fromHtml(s));
3.開始都是用Html.fromHtml(source)。来显示html的,但是你会发现,对于style。table等等一系列的标签它都没有解析的
   仅仅好换一个思路。用webview去作,在xml中增长

<WebView
            android:id="@+id/wv1"api

            android:layout_width="fill_parent"code

            android:layout_height="fill_parent" />xml

而后在activity中htm

WebView wView = (WebView)findViewById(R.id.wv1);  webview

wView.getSettings().setDefaultTextEncodingName("UTF -8"); get

wView.loadData(source, "text/html; charset=UTF-8", null);it

这样就可以了

相关文章
相关标签/搜索