歡迎使用CSDN markdown編輯器

2021-07-03 12:17:00 字數 3169 閱讀 4075

首先,說下textview到底支援那些標籤呢,通過對原始碼的檢視,發現textview可以解析一部分html標籤,如:

複製**

複製**

大家想究其根本可以檢視android.text.html原始碼,其中有一段這樣寫:

複製**

private void handlestarttag(string tag, attributes attributes) else if (tag.equalsignorecase(「p」)) else if (tag.equalsignorecase(「div」)) else if (tag.equalsignorecase(「em」)) else if (tag.equalsignorecase(「b」)) else if (tag.equalsignorecase(「strong」)) else if (tag.equalsignorecase(「cite」)) else if (tag.equalsignorecase(「dfn」)) else if (tag.equalsignorecase(「i」)) else if (tag.equalsignorecase(「big」)) else if (tag.equalsignorecase(「small」)) else if (tag.equalsignorecase(「font」)) else if (tag.equalsignorecase(「blockquote」)) else if (tag.equalsignorecase(「tt」)) else if (tag.equalsignorecase(「a」)) else if (tag.equalsignorecase(「u」)) else if (tag.equalsignorecase(「sup」)) else if (tag.equalsignorecase(「sub」)) else if (tag.length() == 2 &&

character.tolowercase(tag.charat(0)) == 『h』 &&

tag.charat(1) >= 『1』 && tag.charat(1) <= 『6』) else if (tag.equalsignorecase(「img」)) else if (mtaghandler != null)

}

private void handleendtag(string tag)  else if (tag.equalsignorecase("p"))  else if (tag.equalsignorecase("div"))  else if (tag.equalsignorecase("em"))  else if (tag.equalsignorecase("b"))  else if (tag.equalsignorecase("strong"))  else if (tag.equalsignorecase("cite"))  else if (tag.equalsignorecase("dfn"))  else if (tag.equalsignorecase("i"))  else if (tag.equalsignorecase("big"))  else if (tag.equalsignorecase("small"))  else if (tag.equalsignorecase("font"))  else if (tag.equalsignorecase("blockquote"))  else if (tag.equalsignorecase("tt"))  else if (tag.equalsignorecase("a"))  else if (tag.equalsignorecase("u"))  else if (tag.equalsignorecase("sup"))  else if (tag.equalsignorecase("sub"))  else if (tag.length() == 2 &&

character.tolowercase(tag.charat(0)) == 'h' &&

tag.charat(1) >= '1' && tag.charat(1) <= '6') else if (mtaghandler != null)

}

複製**

通過原始碼可以看到,除了預設的一些標籤,其還支援自定義標籤;看下面**:

else if (mtaghandler != null)

系統會呼叫mtaghandler的handletag方法。所以,我們可以實現此介面,來解析自己定義的標籤型別。

具體的,自己可以看一下下面例項:

複製**

package com.mxgsa.tvimg;

import org.xml.sax.xmlreader;

import android.content.context;

import android.content.intent;

import android.text.editable;

import android.text.html.taghandler;

import android.text.spanned;

import android.text.style.clickablespan;

import android.view.view;

import android.view.view.onclicklistener;

public class mxgsataghandler implements taghandler

public void handletag(boolean opening, string tag, editable output, xmlreader xmlreader) else

}}private class mxgsaspan extends clickablespan implements onclicklistener

}} 複製**

呼叫頁面:

複製**

package com.mxgsa.tvimg;

public class mxgsaactivity extends activity

private void findcontrol()

private void setdata() }

複製**

下篇將會講帶的html文字顯示!

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...