1、通过android:autoLink属性来实现对TextView中文本相应类型的链接进行自动识别。
例如:android:autoLink= all 可以自动识别TextView文本中的网络地址,邮件地址,电话号码,地图位置等,并进行链接。
android:autoLink所有支持的链接属性取值如下:
常量 |
值 |
描述 |
---|---|---|
|
0x00 |
不进行自动识别(默认). |
|
0x01 |
自动识别网络地址 |
|
0x02 |
自动识别邮件地址 |
|
0x04 |
自动识别电话号码 |
|
0x08 |
自动识别地图位置 |
|
0x0f |
自动识别以上四种链接属性(相当于web|email|phone|map). |
注:可以通过“|”符号连接多个属性值来支持多种类型的链接自动识别。例如,
android:autoLink=web|email|phone支持对网络地址,邮件地址,电话号码的自动识别,并进行链接。
这是在XML文件中进行属性设置来识别链接的方式,还有一种在Java代码中进行属性设置的方式,同样可以实现类似功能。例如TextView对象mTextView1,我们可以通过mTextView1.setAutoLinkMask(intmask)来实现对TextView中文本相应类型的链接进行自动识别。其中mask所有取值如下:
常量 |
|||
---|---|---|---|
int |
ALL |
自动识别邮件地址,网络地址,地图位置和电话号码 |
|
int |
EMAIL_ADDRESSES |
自动识别邮件地址 |
|
int |
MAP_ADDRESSES |
自动识别地图位置 |
|
int |
PHONE_NUMBERS |
自动识别电话号码 |
|
int |
WEB_URLS |
自动识别网络地址 |
注:使用时请在常量前面加上Linkify.字样,例如:mTextView1.setAutoLinkMask(Linkify.ALL)
2、将含有HTML链接标记的文本写在Android资源文件中,如string.xml,然后在Java代码中直接引用。
3、通过Html类的fromHtml(Stringsource)方法来对含有HTML链接标记的文本进行格式化处理。
4、通过Spannable或继承它的类,如SpannableString来格式化部分字符串。关于SpannableString的详细用法,请参考:http://blog.csdn.net/yang_hui1986527/article/details/6776629
注:默认情况下,第2,3,4种方法可以显示链接,但是无法响应用户的点击输入。如果需要激活该响应,需要调用TextView对象的以下方法:setMovementMethod(LinkMovementMethod.getInstance())
下面我们进行实例代码解析:
res-value-string.xml
- <?xml version="1.0" encoding="utf-8"?>