Java代码

  1. package com.cm;
  2. import java.util.ArrayList;
  3. import android.R.color;
  4. import android.app.Activity;
  5. import android.content.Context;
  6. import android.graphics.Color;
  7. import android.os.Bundle;
  8. import android.text.Html;
  9. import android.text.Spannable;
  10. import android.text.SpannableStringBuilder;
  11. import android.text.method.LinkMovementMethod;
  12. import android.text.style.ClickableSpan;
  13. import android.text.style.URLSpan;
  14. import android.view.View;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17. public class TextHtml extends Activity {
  18. private TextView tv;
  19. private static Context ctx;
  20. @Override
  21. public void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. tv = new TextView(this);
  24. ctx = this;
  25. String htmlLinkText =  "我是超链接"+ "<a style=\"color:red;\" href='lianjie'>超链接点击事件</a>";
  26. // 文字的样式(style)被覆盖,不能改变……
  27. tv.setText(Html.fromHtml(htmlLinkText));
  28. tv.setMovementMethod(LinkMovementMethod.getInstance());
  29. CharSequence text = tv.getText();
  30. if (text instanceof Spannable) {
  31. int end = text.length();
  32. Spannable sp = (Spannable) tv.getText();
  33. URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);
  34. SpannableStringBuilder style = new SpannableStringBuilder(text);
  35. style.clearSpans();// should clear old spans
  36. //循环把链接发过去
  37. for (URLSpan url : urls) {
  38. MyURLSpan myURLSpan = new MyURLSpan(url.getURL());
  39. style.setSpan(myURLSpan, sp.getSpanStart(url),
  40. sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  41. }
  42. tv.setText(style);
  43. }
  44. setContentView(tv);
  45. }
  46. private static class MyURLSpan extends ClickableSpan {
  47. private String mUrl;
  48. MyURLSpan(String url) {
  49. mUrl = url;
  50. }
  51. @Override
  52. public void onClick(View widget) {
  53. if(mUrl .equal(lianjie)){
  54. Toast.makeText(ctx, mUrl, Toast.LENGTH_LONG).show();
  55. widget.setBackgroundColor(Color.parseColor("#00000000"));
  56. }
  57. }
  58. }
  59. }

package com.cm; import java.util.ArrayList; import android.R.color; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.text.Html; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.text.style.URLSpan; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class TextHtml extends Activity { private TextView tv; private static Context ctx; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); ctx = this; String htmlLinkText = "我是超链接"+ "<a style=\"color:red;\" href='lianjie'>超链接点击事件</a>"; // 文字的样式(style)被覆盖,不能改变…… tv.setText(Html.fromHtml(htmlLinkText)); tv.setMovementMethod(LinkMovementMethod.getInstance()); CharSequence text = tv.getText(); if (text instanceof Spannable) { int end = text.length(); Spannable sp = (Spannable) tv.getText(); URLSpan[] urls = sp.getSpans(0, end, URLSpan.class); SpannableStringBuilder style = new SpannableStringBuilder(text); style.clearSpans();// should clear old spans //循环把链接发过去 for (URLSpan url : urls) { MyURLSpan myURLSpan = new MyURLSpan(url.getURL()); style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); } tv.setText(style); } setContentView(tv); } private static class MyURLSpan extends ClickableSpan { private String mUrl; MyURLSpan(String url) { mUrl = url; } @Override public void onClick(View widget) { if(mUrl .equal(lianjie)){ Toast.makeText(ctx, mUrl, Toast.LENGTH_LONG).show(); widget.setBackgroundColor(Color.parseColor("#00000000")); } } } }

转载于:https://blog.51cto.com/gswxr/719063

转:android TextView中超链接的事件捕捉(textview上LINK的点击事件)相关推荐

  1. Android 拦截TextView中超链接点击事件

    Android 拦截TextView中超链接的点击事件 1.在xml中为TextView添加autoLink属性 <TextView...android:autoLink = "web ...

  2. 设置TextView中超链接字体颜色、下划线

    ClickableSpan:这是超链接相关的样式控制和点击事件的控制类,我们需要对它进行继承,然后修改成我们需要的样式.其中,可以对超链接文本字符进行颜色.字体大小.字体.下划线.点击事件的自定义控制 ...

  3. uniapp在onLaunch中使用redirectTo或reLaunch跳转页面后点击事件失效

    问题描述: 使用uniapp编译成小程序时,在生命周期onLaunch中运用redirectTo或reLaunch跳转页面后点击事件失效,但是如果你重定向的页面中有使用navigator组件跳转后再返 ...

  4. 关于Echarts柱状图点击事件的实现方法charsjs柱状图点击事件

    关于Echarts柱状图点击事件的实现方法 charsjs柱状图点击事件 ajax请求数据 var chartDom = document.getElementById('riskmain'); va ...

  5. Android中设置RecyclerView的每一个item的单项点击事件

    场景 Android中使用Adapter(适配器)给RecycleView设置数据源: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  6. android app 主界面,android ViewPager实现App主界面Tab菜单页面切换和点击事件

    Tabhost实现页面滑动切换比较麻烦,这里介绍一下viewPage 控件. 实现了三屏滑动带标题点击和tab页面内按钮的的点击事件实现: viewPage  的优点是可以滑动切换缺点是MainAct ...

  7. android studio listview点击事件,android如何响应listview上不同按钮点击事件

    参考来源:http://www.tuicool.com/articles/bamqiq 大致思路:重写适配器,让主函数继承接口接口 ListItemClickHelp,这个接口中包含onclick方法 ...

  8. Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗

    最近开发中,遇到一个多个点绘制,并实现点击事件,出现自定义窗口显示相关信息等功能,所以写了这篇博客. 从后台请求数据,得到多个经纬度,然后绘制在地图上,并实现点击,出现相关信息(自定义弹框实现) 先来 ...

  9. android高德地图多个mark点击,Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗...

    最近开发中,遇到一个多个点绘制,并实现点击事件,出现自定义窗口显示相关信息等功能,所以写了这篇博客. 从后台请求数据,得到多个经纬度,然后绘制在地图上,并实现点击,出现相关信息(自定义弹框实现) 先来 ...

最新文章

  1. 我的机器学习入门清单及路线!
  2. 复旦计算机学院徐老师,复旦大学信息科学与技术学院徐跃东副研究员到课题组访问交流...
  3. 今天来谈谈Python中的各种排序总结,含实现代码
  4. spring注解式参数校验
  5. 电脑亮度多少对眼睛好_鲁大师性能测试多少分算好电脑?
  6. Java-java.util.concurrent.LinkedBlockingQueue
  7. ARCGIS知乎上的好文章
  8. jq真正清空表单数据(亲测 好用)
  9. 踩坑事件:windows操作系统下的eclipse中编写SparkSQL不能从本地读取或者保存parquet文件
  10. 游戏开发流程及QA职责
  11. 数据结构-带头双向循环链表
  12. 课程设计---宾馆客房管理系统
  13. 能耗分项计量监测系统在某大型公建中的应用
  14. 美国大学计算机科学分支,美国大学计算机专业四大分支介绍
  15. python做一段有意思的代码_Python爬虫入门有意思的小长代码
  16. 推荐一款自带很好用的桌面便签
  17. 逆向笔记2(数据宽度_逻辑运算)
  18. sql/hana批量存入表(每日一总)
  19. 1、Android概述
  20. Base64编码的原理及实现(源码)

热门文章

  1. ios 销毁当前页面重新开启_利用Vue中keep-alive,快速实现页面缓存
  2. Win11推送如何操作 Windows11推送的详细步骤方法
  3. 计算机不能代替人类英语,英语作文 谈谈计算机1我们已进入了计算机时代2计算机有许多优点3计算机不能代替人类...
  4. python画出roc曲线 auc计算逻辑_从scikitlearn(sklearn)的多类数据计算AUC和ROC曲线?...
  5. 中学生python程序设计大赛_贵州民族大学第一届程序设计大赛圆满举办
  6. 洛谷——P1739 表达式括号匹配
  7. js获取当天0点和24点的时间戳
  8. eigen之eigen中文文档
  9. halcon——在图形窗口中画坐标系
  10. 来不及解释!python字符串常用方法大全,先收藏再说