iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 1
0

網頁的顯示,一般都使用內建的Webview,或是連結到外部瀏覽器來作處理。

如果是純文字畫面的網頁或超連結的顯示,也是可以利用TextView來作處理。

TextView 除了顯示純字串資料,也支援HTML格式。

textViewHyperLink.setMovementMethod(LinkMovementMethod.getInstance())
var htmlString="歡迎來到<big><font color=\"#FF0000\"><b>Google</b></font></big>,點選連結:<br/><br/><a href=\"https://www.google.com.tw/\">https://www.google.com.tw/</a>"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.24) {
    textViewHyperLink.setText(Html.fromHtml(htmlString,Html.FROM_HTML_MODE_LEGACY))
}
else{
    textViewHyperLink.setText(Html.fromHtml(htmlString))
}

textViewHyperLink.setText(Html.fromHtml(htmlString))

要顯示HTML使用上面的語法就可以了。

但不幸地Html.fromHtml(htmlString)這個語法在API Level24後被禁用了。

不用擔心,我們換個寫法

textViewHyperLink.setText(Html.fromHtml(htmlString,Html.FROM_HTML_MODE_LEGACY))

它的原型是 public static Spanned fromHtml(String source, int flags)

其中的flags表示:
FROM_HTML_MODE_COMPACT:html區塊與元素用一個換行符號隔開
FROM_HTML_MODE_LEGACY:html區塊與元素用兩個換行符號隔開

顯示Html語法的部分到這邊結束了。

不要忘了我們的主題是Html顯示與超連結的用法

當我們要在APP內開啟外部瀏覽器時,除了使用Intent這類方法,還可以透過TextView的超連結功能來開啟。

剛剛的寫法雖然我們在字串裡有加上google的網址,但是我們點選時並不會有動作去連結到外部瀏覽器。

這時候,我們只要加上textViewHyperLink.setMovementMethod(LinkMovementMethod.getInstance())

這行語法就可以讓字串內的超連結語法生效。


下一篇
Textview 我想要顯示多行又想要省略號
系列文
跟Kotlin一起來聊Android元件 或許還有應用,或許還有一些資訊雜談30

尚未有邦友留言

立即登入留言