android TextView webView 显示 html table 标签内容

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

2.TextView 是不支持 HTML 标签和样式的,只支持一些固定的标签和样式,之所以不使用 webview 是因为 webview 太重了,而我有好多个 TextView 后台返回的都是简单的 HTML,最好让后台同事只返回 TextView 支持的标签,毕竟 TextView 不是 WebView, TexView 只支持简单的固定标签,android7.0( api level 24 ) 有一个方法可以自己处理标签(可通过 ImageGetterTagHandler 自己处理标签)

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

但是为了兼容低版本,我们还不能使用这个方法。所以只能自己解析转换,可以用正则匹配把一些不支持的 Tag 转为支持的 Tag,或转为原生控件添加到 View  中。

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"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent" />

然后在activity中

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

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

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

这样就能够了

 
 

转载于:https://my.oschina.net/u/248383/blog/2993034

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值