布局文件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. CodeForces 516C Drazil and Park 线段树

    原文链接http://www.cnblogs.com/zhouzhendong/p/8990745.html 题目传送门 - CodeForces 516C 题意 在一个环上,有$n$棵树. 给出每一 ...

  2. {}动态规划}记忆化dp

    先搞个模板 #include<stdio.h> #include<string.h> using namespace std; typedef long long ll; ]; ...

  3. youDao

    2018-09-22Journeys end in lovers' meeting.漂泊止于爱人的相遇. All extremes of feeling are allied with madness ...

  4. html-定位

    概述: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...

  5. 使用EndNote在Word中插入参考文献

    以百度文库为例,首先找到我们要插入的参考文献,比如 搜索关键词,然后下需要的论文下面点击引用 得到 点击下面导出链接的EndNote,会下载一个.enw文件 找到此文件并双击打开后即已经导入到EndN ...

  6. css3 的新属性

    1,动画,animate------>//动画-名称-动画的时间间隔-以什么方式播放-循环 .right{ animate:dropdown 4px 5px #000; // x的偏移值 y的偏 ...

  7. Jquery操作一遍过

    什么是jQuery对象? jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQu ...

  8. pyspider 启动错误遇到的一些坑

    https://blog.csdn.net/SiHann/article/details/88239892 突然接到一个项目是关于pyspider,遇到了一些小坑,百度一下发现并没有很好的解决所以研究 ...

  9. EF 下如何更新数据表数据

    转载请注明出处:http://www.cnblogs.com/zhiyong-ITNote/ 一直不习惯linq的扩展方法,每次用的时候,贼不顺手,尤其是查数据的时候,这不更新个数据库这么简单地需求都 ...

  10. 帝国移动pc站文章

    帝国建站的时候发现,如果在PC站发文章,那么移动站的文章正文无法显示... 搜索调试了很久,原来是要对config进行配置. 在移动站config.php文件,对 $ecms_config['sets ...