Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 562|回复: 0

[实例教程]Android 文本自动连接功能

[复制链接]

该用户从未签到

发表于 2011-10-22 12:24:30 | 显示全部楼层 |阅读模式
我想再次感叹Android的功能强大。其实要实现文本中电话,邮箱,网址的自动连接是非常方便的。下面就来分别介绍一下。

       首先介绍一种最方便的方法:直接在TextView的属性中设置autoLink参数,这样如果textview中包含特定的形式就会启动相应的程序来处理它。它的参数包括 "none”,”web”,”email”,”phone”,”map”,”all”,其他的不用说,最后的all是指由系统自动来判断,当然最好还是别用all,除非无法预知TextView中会包涵哪些或者包涵多项不同的类型。

       下面介绍不设置autoLink参数的方法。

       第一种:利用xml来写明字符串。可以在字符串中加入相应的标签来区分各种特定的类型。例如:

java代码: This is some other text, with a <a href="http://www.Google.com">link</a> specified via an <a> tag. Use a \"tel:\" URL to <a href="tel:4155551212">dial a phone number。
如此只要调用该TextView的setMovementMethod(LinkMovementMethod.getInstance())方法,即可顺利获得连接。

       第二种:在Java文件中来确定字符串。调用TextView的setText方法,将

java代码: HTML.fromHtml(

"<b>text3:</b> Text with a " +

"<a href=\"http://www.google.com\">link</a> " +

"created in the Java source code using HTML.")
设置到TextView中。同样的,需要调用该TextView的setMovementMethod(LinkMovementMethod.getInstance())方法。

       第三种:利用SpannableString来完成特殊类型的attach工作,它的作用其实是为字符串中的特定字符加上修饰。首先要生成该类SpannableString ss = new SpannableString("text4: Click here to dial the phone.");然后调用setSpan方法来设置它,例如:

java代码: ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ss.setSpan(new URLSpan("tel:4155551212"), 13, 17,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
由于他实际上原理和前两种相同,所以同样要调用setMovementMethod(LinkMovementMethod.getInstance())方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-5 20:30 , Processed in 0.406155 second(s), 38 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表