布局文件xml

1 <TextView
2 android:layout_width="match_parent"3 android:layout_height="match_parent"4 android:id="@+id/test_note"5 android:autoLink="all"6 />

这里autoLink="all"就是链接所有类型的,包括网址,电话,邮件地址什么的。

Java代码里,对链接的事件进行监听。

 1 package com.jayce.testlink;
2
 3 import android.net.Uri;
4 import android.os.Bundle;
5 import android.app.Activity;
6 import android.content.Intent;
7 import android.text.Spannable;
8 import android.text.SpannableStringBuilder;
9 import android.text.style.ClickableSpan;
10 import android.text.style.URLSpan;
11 import android.util.Log;
12 import android.view.View;
13 import android.view.View.OnClickListener;
14 import android.widget.TextView;
15
16 public class TextLinkActivity extends Activity {
17
18     @Override
19 public void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21 setContentView(R.layout.activity_text_link);
22 TextView tv = (TextView)findViewById(R.id.test_note);
23 CharSequence text = tv.getText();
24 /*
25          * 以下是textview的内容(这里给了3个示例链接和一个普通字符串)
26 * 13888888888
27 * www.google.com
28 * test@gmail.com
29 * jaycetest
30 */
31         if (text instanceof Spannable) {
32 int end = text.length();
33 Spannable sp = (Spannable) tv.getText();
34 URLSpan[] spans = sp.getSpans(0, end, URLSpan.class);
35 SpannableStringBuilder style = new SpannableStringBuilder(text);
36 style.clearSpans();// should clear old spans  
37             for (URLSpan span : spans) {
38 JayceSpan mySpan = new JayceSpan(span.getURL());
39 style.setSpan(mySpan, sp.getSpanStart(span), sp.getSpanEnd(span), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
40 }
41 tv.setText(style);
42 }
43 tv.setOnClickListener(new OnClickListener(){
44
45             @Override
46 public void onClick(View v) {
47 // TODO Auto-generated method stub48 /*
49                  * 这里是对所有点击消息的监听
50 * 可以把链接的做标记剔除后监听非链接的点击
51 * 比如jaycetest区域的点击
52 */
53             }});
54     }
55
56     private  class JayceSpan extends ClickableSpan {
57
58         private String mSpan;
59
60         JayceSpan(String span) {
61 mSpan = span;
62 }
63
64         @Override
65 public void onClick(View widget) {
66 Log.e("jayce", "span:" + mSpan);
67 /*链接被点击
68 * 这里可以做一些自己定义的操作
69 */
70             Intent intent = new Intent(Intent.ACTION_VIEW);
71 intent.setData(Uri.parse(mSpan));
72 startActivity(intent);
73 }
74 }
75
76 }

Android TextView中链接(link)点击事件的截取的更多相关文章

  1. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

  2. Android TextView部分文字实现点击事件

    This is the class for text whose content and markup can both be changed. (这是一个内容和标记都可以更改的文本类) 快速实现 直 ...

  3. Android监听消息通知栏点击事件

    Android监听消息通知栏点击事件 使用BroadCastReceiver 1 新建一个NotificationClickReceiver 类,并且在清单文件中注册!! public class N ...

  4. robot framework程序运行过程中,遇到点击事件之后,未出现点击之后的效果(求解)

    1.click Element操作,在实际过程中偶然会出现,日志显示已点击成功,但是实际自动化页面,没有点击成功之后的操作 现象: 现象描述:程序执行到点击侧边栏的[人员信息]之后,日志显示已经点击成 ...

  5. Android TextView 中实现部分文字变色以及点击事件

    首先要想实现文字变色以及点击,都需要使用到SpannableStringBuilder,实例化该类也很简单,只需将你想要处理的字符串当做参数 SpannableStringBuilder spanna ...

  6. Android 响应webview中图片的点击事件

    最近碰到个新需求需要点击webview中的图片进行放大显示. 整理了下思路,想到了下面的一个可行的方案. 方案思路, 1.在点击图片的时候调用本地的java方法并给出响应的图片地址 2.本地获得图片地 ...

  7. Android TextView中实现点击文本超链接(无下划线)的封装类

    android中有的时候须要在TextView上设置一些超链接,点击这些超链接时进行一些操作.比如新浪微博上的一些keyword,点击时会跳转到对应的页面. 怎样实现我们就直接看源代码吧. /** * ...

  8. Android—— TextView文字链接4中方法

    转自:http://ghostfromheaven.iteye.com/blog/752181 Android 的实现TextView中文字链接的方式有很多种. 总结起来大概有4种: 1.当文字中出现 ...

  9. Android菜鸟成长记4-button点击事件

    Button 1.button按钮的创建 一般来说,在我们新建一个Android项目的时候,会有会默认有一个activity_main.xml的文件 如果你在新建项目的时候,把Create Activ ...

随机推荐

  1. ELK安装(ubuntu)

    一.安装jdk8 经过我测试logstash5.x不支持java10和11,所以安装java8 加入LinuxUprising Java PPA sudo add-apt-repository ppa ...

  2. IDEA创建javaSE项目

  3. Python 小程序之 恋爱表情包爬取

    虽然恋爱跟我一毛钱关系没有,,但是我还是想爬它 实验爬取网址:http://qq.yh31.com/zjbq/1491124.html # -*- coding: utf-8 -*- # @Time ...

  4. Double.parseDouble(String s)

    要把字符串转换为Double类型,只能转换“0.02”这种格式的字符串,不能转换百分比格式的,比如“2%” 这个时候可以Double cbl= Double.parseDouble(“2%”.repl ...

  5. 大家的备忘录——xpage_在线引用jQuery

    <xp:this.resources> <xp:dojoModule name="dojo.fx"></xp:dojoModule> <x ...

  6. input模拟输入下拉框

       功能点: 输入.下拉选择.根据输入内容模糊检索.键盘上下键选择 实现思路: 显示隐藏: input获取焦点显示,失去焦点隐藏 下拉选择: 以父元素为基准,通过绝对定位定位至input输入下方 模 ...

  7. Java反射之基础概念

    0.实例准备 package com.blueStarWei.invoke; public class Student { private String name; public Student() ...

  8. Xamarin Essentials教程屏幕状态DeviceDisplay

    Xamarin Essentials教程屏幕状态DeviceDisplay   由于移动设备型号众多,采用的显示屏幕也千差万别.为了获取较好的显示效果,应用程序往往需要获取设备的显示状态,如屏幕参数. ...

  9. 6. 合并排序数组 II

    6. Merge Two Sorted Arrays Description Merge two given sorted integer array A and B into a new sorte ...

  10. visual studio 设计第一个WinForm小程序

    WinForm小程序之消息框 首先打开visual studio 软件,然后[文件]-[新建]-[项目]-[Visual C#]-[Windows],选择Windows窗体应用程序,根据自己的需要修改 ...