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)方法:
1TextView tv = new TextView(this);
2tv.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) |