1.直接在xml文件中配置autoLink属性
autoLink属性一共有六个值,其可选择的属性如下所示
- none:不匹配任何类型的文字,默认为此选项。
- web:匹配URL地址,单击后打开浏览器显示地址。
- email:匹配邮箱地址,单击后打开邮箱发送邮件。
- phone:匹配电话号码,单击后打开拨号界面。
- map:匹配地图地址,单击后打开地图选项。
- all:匹配所有的格式,自动检测web,phone,email,map四种格式。
<!-- 定义TextView标签,加入autoLink节点值为web,text节点值为www.baidu.com -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:text="www.baidu.com" />
定义TextView标签,加入autoLink节点值为email,text节点值为squallwu_2006@qq.com
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="email"
android:text="squallwu_2006@qq.com" />
定义TextView标签,加入autoLink节点值为phone,text值为10086
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="phone"
android:text="15596630691" />
定义TextView标签,加入autoLink节点值为map,text节点值为1812 Avenue K Plano,Texas 75074
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="map"
android:text="1912 Avenue K Plano,Texas 75074" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="all"
android:text="此处为 电话号码,网址,地图,邮箱" />
使用HTML语言
利用HTML语言显示超链接
Tv.setText(Html.fromHtml("<a href='tel:15596630691'>打电话</a>,<a href='smsto:15596630691'>发短信</a>,<a href='15596630691@163.com'>发邮件</a>,<a href='http://www.baidu.com'>Go百度</a>")); Tv.setMovementMethod(LinkMovementMethod.getInstance());
3.在strings.xml中直接写HTML,然后在TextView的xml中直接引用即可
strings.xml中的定义如下:
<string name="Tv"><a href='tel:15596630691'>打电话</a>,
<a href='smsto:15596630691'>发短信</a>,
<a href='mailto:15596630691@163.com'>发邮件</a>,
<a href='http://www.baidu.com'>Go百度</a></string>
TextView的XML定义如下:
<TextView
android:id="@+id/Tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Tv"/>
然后只需要在Activity中设置该TextView为可点击状态即可:
Tv.setMovementMethod(LinkMovementMethod.getInstance());
4.使用SpannableString实现超链接
关于spannableString的详细使用参见SpannableString使用详解,我们这里就再次重复一下使用spannableString实现超链接功能:
SpannableString ss = new SpannableString("打电话,发短信,发邮件,Go百度");
ss.setSpan(new URLSpan("tel:15596630691"), 0, 3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("smsto:15596630691"), 4, 7,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("mailto:15596630691@163.com"), 8, 11,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("http://www.baidu.com"), 12, 16,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Tv.setText(ss);
Tv.setMovementMethod(LinkMovementMethod.getInstance());
demo下载> http://download.youkuaiyun.com/detail/aiyuan1996/9597295