TextView為一個顯示純文本的視圖,但如果純文本中有http超文本鏈接或者Email地址,如何讓android自動識別并調用相關的activity(如瀏覽器、電子郵件)來展示呢?
查了網上很多資料,實現方法都相對復雜,基本是使用android.text.Html,android.text.style.URLSpan等幾個類來實現識別TextView中的URL,再通過webview的loadUrl(myUrl)方法來打開。
這里有個麻煩的地方,即TextView中的鏈接地址必須是符合HTML規范的,即必須要有<a href="http://.....">.....</a>標記才能被識別,如果沒有還得分析文本再加上這些標記,相當麻煩。其實要讓TextView自動識別其中的超文本鏈接或是Email地址或是電話號碼,Android有個很簡單的方法,即TextView的setAutoLinkMask(int mask)方法:
1
TextView tv = new TextView(this);
2
tv.setAutoLinkMask(0x01);
其中mask的參數表在android文檔中有說明,具體如下:
Constant |
Value |
Description |
none |
0x00 |
Match no patterns (default) |
web |
0x01 |
Match Web URLs |
email |
0x02 |
Match email addresses |
phone |
0x04 |
Match phone numbers |
map |
0x08 |
Match map addresses |
all |
0x0f |
Match all patterns (equivalent to web|email|phone|map) |