码迷,mamicode.com
首页 > 其他好文 > 详细

New UI-为TextView设置超链接跳转的三个方法

时间:2015-03-02 13:13:51      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:android   textview   ui   超链接   spannablestring   

New UI-为TextView设置超链接跳转的三个方法

 ——转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!


小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的

力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文

更加的详尽,帮到更多的人,O(∩_∩)O谢谢!

小猪Android开发交流群:小猪Android开发交流群群号:421858269

新Android UI实例大全目录:http://blog.csdn.net/coder_pig/article/details/42145907




本节引言:

本节主要介绍的是如何为TextView设置超链接,跳转到浏览器,短信,拨号界面等

方法分别用三种:

①使用SpannableString来实现

②使用autoLink属性来实现

③使用HTML的<a>标签来实现

那么开始本节的内容!


本节正文:

1.通过SpannableString设置超链接:

通过SpannableString来实现的,核心方法是:

setSpan (Object what, int start, int end, int flags)

主要看start与end,一个是字符的起始下标,从0开始算,end则是结束为止,

包含起始位置,而不包含结束位置的字符哦!另外中英文都算一个字符!


示例代码如下:

SpannableString mSpannableString = new SpannableString(
				"打开百度,拨打电话,发送短信,发送邮件,发送彩信,打开地图");
		// 设置超链接 (需要添加setMovementMethod方法附加响应)
		mSpannableString.setSpan(new URLSpan("http://www.baidu.com"), 0, 4,
				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		mSpannableString.setSpan(new URLSpan("tel:13756565654"), 5, 9,
				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 电话
		mSpannableString.setSpan(new URLSpan("sms:13756565654"), 10, 14,
				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 短信 使用sms:或者smsto:
		mSpannableString.setSpan(new URLSpan("mailto:779878443@qq.com"),
				15, 19, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 邮件
		mSpannableString.setSpan(new URLSpan("mms:13756565654"), 20, 24,
				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 彩信 使用mms:或者mmsto:
		mSpannableString.setSpan(new URLSpan("geo:38.899533,-77.036476"), 25,
				29, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 地图
		txtShow.setMovementMethod(LinkMovementMethod.getInstance());
		txtShow.setText(mSpannableString);

运行截图:

技术分享

ps:这里的发送邮件与打开地图都是用不了的,因为天朝里的Android手机通常都是被

阉割过的,一些Google的服务都给去掉了~




2.通过XML中的autoLink属性来设置:

除了上面这种方法外,我们还可以在XML通过autoLink属性来设置不同类型的超链接,用法如下:

技术分享


all就是全部都包含,自动识别协议头~

在Java代码中可以调用setAutoLinkMask(Linkify.ALL); 

这个时候可以不写协议头,autolink会自动识别,但是需要设置:

setMovementMethod(LinkMovementMethod.getInstance()); 

不然点击了是不会跳转的~




3.通过HTML中的<a>超链接来设置:

还有一种,就是通过html的<a>超链接标签,代码如下:

		//注意这里必须加上协议号,即http://。否则,系统会以为该链接是activity,而实际这个activity不存在,程序就崩溃。
		String html ="<a href='http://www.baidu.com'>百度一下</a>";
		CharSequence charSequence = Html.fromHtml(html);
		txtShow.setText(charSequence);
		txtShow.setMovementMethod(LinkMovementMethod.getInstance());

运行截图:

技术分享


ps:关于如何去掉下面这个链接,暂时还没找到方法,知道的朋友可以告知下~万分感谢!!



关于如何为TextView添加超链接就讲到这里吧~技术分享


New UI-为TextView设置超链接跳转的三个方法

标签:android   textview   ui   超链接   spannablestring   

原文地址:http://blog.csdn.net/coder_pig/article/details/44015193

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!