在TextView中添加超链接

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

autoLink属性一共有六个值,其可选择的属性如下所示

  1. none:不匹配任何类型的文字,默认为此选项。
  2. web:匹配URL地址,单击后打开浏览器显示地址。
  3. email:匹配邮箱地址,单击后打开邮箱发送邮件。
  4. phone:匹配电话号码,单击后打开拨号界面。
  5. map:匹配地图地址,单击后打开地图选项。
  6. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值