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

這樣就可以了

相關文章
相關標籤/搜索