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

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:[email protected]"),
				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添加超链接就讲到这里吧~

时间: 2024-11-01 21:14:21

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

Android TextView里直接显示图片的三种方法

方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般如果字体是在图片上重叠的推荐这样写.时间关系,这个不付源码了. 方法二:利用TextView支持部分Html的特性,直接用api赋图片.代码如下: //第一种方法在TextView中显示图片 String html = "<img src='" + R.drawable.circle + "'/>"; ImageGetter imgGett

PHP设置脚本最大执行时间的三种方法

php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,如果脚本需要跑很长时间,例如要大量发送电子邮件,或者分析统计大量数据,服务器会在 30 秒后强行中止正在执行的程序,这种情况就要更改php脚本最大执行时间. PHP设置脚本最大执行时间的三种方法 1.在php.ini里面设置 max_execution_time = 120; 2.通过PHP的ini_set函数设置 ini_set("max_execution_time

HTML中button标签点击实现页面跳转的三种方法

方法1:使用onclick事件12<input type="button" value="按钮"onclick="javascrtpt:window.location.href='http://www.9252.com/'" /> 或者直接使用button标签1<button onclick="window.location.href = 'https://www.9252.com/'">儿童</

Android一个TextView设置多种颜色的2种高效方法

有时候一个文本框为了强调内容须要显示不同颜色,用下面代码能够轻松实现 方法一:(适用于颜色变化多的情况) //为文本框设置多种颜色 textView=(TextView)findViewById(R.id.text_show); SpannableStringBuilder style = new SpannableStringBuilder("备注:签收人(张三)"); style.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 3,

Vue-Router来实现组件间跳转的三种方法

一.通过js的编程的方式 <!doctype html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/vue.js"></script> <!-- 引入文件 --> <script src="js/vue-router.js"><

jQuery - 设置内容和属性的三种方法

jQuery - 设置内容和属性 设置内容 - text().html() 以及 val() 我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 下面的例子演示如何通过 text().html() 以及 val() 方法来设置内容: 实例 $("#btn1").click(function(){ $("#test1"

Zend框架设置数据库连接编码为utf8三种方法

第一种:$conn['host'] = '127.0.0.1';$conn['username'] = '56_' . $tenant['tenant'];$conn['password'] = $tenant['password'];$conn['dbname'] = '56_' . $tenant['tenant'];$conn['charset'] = 'utf8';$this->_db = Zend_Db::factory('PDO_MYSQL', $conn);Zend_Db_Tabl

Android TextView中文字设置超链接、颜色、字体

TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色.字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置. 效果图: Activity代码: import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.text.Spannable; import android.tex

超链接跳转

这里面涉及两个知识点--超链接和跳转.下面进行逐一讲解: 1.实现超链接: 1.1形成超链接文本 public static SpannableString getUserlink(String userName, String userId) { SpannableString ss = new SpannableString(userName); URLSpan urlSpan = new URLSpan("gch://" + userId); ss.setSpan(urlSpan