android:autolink 颜色,Android设置完autoLink属性后自定义跳转到指定界面

本文介绍了如何在Android中使用TextView的autoLink属性自动识别链接,并展示如何拦截默认跳转行为,自定义点击链接后的处理逻辑。通过创建自定义的LinkMovementMethod子类,实现了在点击链接时,根据需要跳转到指定界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在TextView 中设置autoLink 属性可以自动识别Web

URL,电话号码,电子邮件地址添加下划线改变字体颜色并实现点击事件,支持自动识别的类型:

android:autoLink=“web” 匹配Web URL。

android:autoLink=“phone” 匹配电话号码

android:autoLink=“email” 匹配电子邮件地址

android:autoLink=“map” 匹配地理位置

android:autoLink=“all” 匹配所有可用的模式

android:autoLink=“none” 不匹配任何类型

也可以类似这样的设置 android:autoLink=“web|phone” 表示匹配web URL 和手机号

上面的属性也可以通过java 代码的形式对TextView 设置

setAutoLinkMask(int mask) 进行设置

1

设置的参数分别是:

Linkify.WEB_URLS 匹配Web UR

Linkify.PHONE_NUMBERS 匹配电话号码

Linkify.EMAIL_ADDRESSES 匹配电子邮件地址

Linkify.MAP_ADDRESSES 地理位置匹配

Linkify.ALL 匹配所有可用的模式

设置完antoLink属性,点击TextView中的链接时会跳转的对应的界面,比如点击网页的链接会跳转到系统的默认的浏览器界面,点击手机号会进入拨打电话界面,但是这都是系统默认的,我们可不可以进行拦截处理,跳转到我们指定的界面呢,当然是可以的。下面是我的拦截处理的方法。

继承 MovementMethod ,这里我们先看一下MovementMethod的源码,它的源码比较少

public class LinkMovementMethod extends

ScrollingMovementMethod {

private static final int

CLICK = 1;

private static final int

UP = 2;

private static final int

DOWN = 3;

@Override

public boolean

canSelectArbitrarily() {

return true;

}

@Override

protected boolean

handleMovementKey(TextView widget, Spannable buffer, int

keyCode,

int

movementMetaState, KeyEvent event) {

switch (keyCode) {

case

KeyEvent.KEYCODE_DPAD_CENTER:

case

KeyEvent.KEYCODE_ENTER:

if

(KeyEvent.metaStateHasNoModifiers(movementMetaState)) {

if (event.getAction() == KeyEvent.ACTION_DOWN

&&

event.getRepeatCount() == 0

&& action(CLICK, widget, buffer)) {

return

true;

}

}

break;

}

return super.handleMovementKey(widget, buffer,

keyCode, movementMetaState, event);

}

@Override

protected boolean

up(TextView widget, Spannable buffer) {

if (action(UP, widget, buffer)) {

return

true;

}

retu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值