博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给TextView添加超链接的四种方式
阅读量:5346 次
发布时间:2019-06-15

本文共 1438 字,大约阅读时间需要 4 分钟。

因为在上上篇博客中介绍了SpannableString的使用(),由此想到给TextView添加超链接究竟有多少种方式?经过个人总结,现在一共发现四种,如果还有其他方式欢迎大家补充,下面我就介绍一下我总结出来的四种方式。

1.直接在xml文件中配置autoLink属性

autoLink属性一共有六个值,分别是none(正常),web(将文本识别为一个网址),phone(将文本识别为一个电话号码),mail(将文本识别为一个邮件地址),map(这个,呃,该怎么表述呢?会打开地图应用),all(根据文本自动识别)。一般情况下我们设置为all即可,我们看看,这个时候它就会自动将TextView中的电话号码、邮件地址、网页链接等识别出来,这中方式是最简单的一种。

2.使用HTML语言

我们知道TextView可以直接显示转换后的HTML,那么借助H5开发经验,我们知道网页中的超链接也可以在TextView中打开,如下:

tv1.setText(Html				.fromHtml("打电话,发短信,发邮件,Go百度"));		tv1.setMovementMethod(LinkMovementMethod.getInstance());

只要我们写好协议,这个其实也很简单。

3.在strings.xml中直接写HTML,然后在TextView的xml中直接引用即可

strings.xml中的定义如下:

打电话,
发短信,
发邮件,
Go百度
TextView的XML定义如下:

然后只需要在Activity中设置该TextView为可点击状态即可:

tv4.setMovementMethod(LinkMovementMethod.getInstance());

4.使用SpannableString实现超链接

关于spannableString的详细使用参见 ,我们这里就再次重复一下使用spannableString实现超链接功能:

SpannableString ss = new SpannableString("打电话,发短信,发邮件,Go百度");		ss.setSpan(new URLSpan("tel:18565554482"), 0, 3,				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);		ss.setSpan(new URLSpan("smsto:18565554482"), 4, 7,				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);		ss.setSpan(new URLSpan("mailto:584991843@qq.com"), 8, 11,				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);		ss.setSpan(new URLSpan("http://www.baidu.com"), 12, 16,				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);		tv3.setText(ss);		tv3.setMovementMethod(LinkMovementMethod.getInstance());
四种方式,哈哈,都很简单吧。

转载于:https://www.cnblogs.com/qitian1/p/6461721.html

你可能感兴趣的文章
20145205 《信息安全系统设计基础》第14周学习总结
查看>>
6)添加一个窗口的图标
查看>>
POJ - 1422 Air Raid 二分图最大匹配
查看>>
Road Map
查看>>
正则替换中的一个Bug
查看>>
HI3531uboot开机画面 分类: arm-linux-Ubunt...
查看>>
制作U盘启动CDLinux 分类: 生活百科 ...
查看>>
strcpy函数里的小九九
查看>>
搭建ssm过程中遇到的问题集
查看>>
OpenLayers绘制图形
查看>>
tp5集合h5 wap和公众号支付
查看>>
Flutter学习笔记(一)
查看>>
iOS10 国行iPhone联网权限问题处理
查看>>
洛谷 P1991 无线通讯网
查看>>
[HIHO1184]连通性二·边的双连通分量(双连通分量)
查看>>
Codeforces Round #178 (Div. 2) B. Shaass and Bookshelf 【动态规划】0-1背包
查看>>
SparkStreaming 源码分析
查看>>
【算法】—— 随机音乐的播放算法
查看>>
mysql asyn 示例
查看>>
DataGrid 点击 获取 行 ID
查看>>