四种实现Textview超链接的方式

本文介绍了四种在Android中为TextView设置超链接的方法:1) 使用`android:autoLink`属性自动识别链接;2) 在资源文件中使用HTML链接标记;3) 通过Html类的`fromHtml()`方法处理HTML文本;4) 使用SpannableString格式化部分字符串。为了使链接响应点击,需调用`setMovementMethod(LinkMovementMethod.getInstance())`。示例代码包括了XML布局和Java代码实现。
摘要由CSDN通过智能技术生成

1、通过android:autoLink属性来实现对TextView中文本相应类型的链接进行自动识别。

例如:android:autoLink= all 可以自动识别TextView文本中的网络地址,邮件地址,电话号码,地图位置等,并进行链接。

android:autoLink所有支持的链接属性取值如下:

常量

描述

none

0x00

不进行自动识别(默认).

web

0x01

自动识别网络地址

email

0x02

自动识别邮件地址

phone

0x04

自动识别电话号码

map

0x08

自动识别地图位置

all

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类的fromHtmlStringsource)方法来对含有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

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值