捕获Android文本中链接点击事件

标签: android 文本 链接 | 发表时间:2015-10-08 21:05 | 作者:wuwangwr1
出处:http://www.iteye.com

关注微信号:javalearns   随时随地学Java

或扫一扫

 

 

随时随地学Java

Android中的TTextView很强大,我们可以不仅可以设置纯文本为其内容,还可以设置包含网址和电子邮件地址的内容,并且使得这些点击可以点击。但是我们可以捕获并控制这些链接的点击事件么,当然是可以的。

本文将一个超级简单的例子介绍一下如何实现在Android TextView 捕获链接的点击事件。

关键实现

实现原理就是将所有的URL设置成ClickSpan,然后在它的onClick事件中加入你想要的控制逻辑就可以了。

private void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder,
      final URLSpan urlSpan) {
    int start = clickableHtmlBuilder.getSpanStart(urlSpan);
    int end = clickableHtmlBuilder.getSpanEnd(urlSpan);
    int flags = clickableHtmlBuilder.getSpanFlags(urlSpan);
    ClickableSpan clickableSpan = new ClickableSpan() {
          public void onClick(View view) {
            //Do something with URL here.

          }
    };
    clickableHtmlBuilder.setSpan(clickableSpan, start, end, flags);
}

private CharSequence getClickableHtml(String html) {
    Spanned spannedHtml = Html.fromHtml(html);
    SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);
    URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);
    for(final URLSpan span : urls) {
      setLinkClickable(clickableHtmlBuilder, span);
    }
    return clickableHtmlBuilder;
}

如何使用

TextView myTextView = (TextView)findViewById(R.id.myTextView);
  String url = "This is a page with lots of URLs. <a href=\"http://droidyue.com\">droidyue.com</> " +
          "This left is a very good blog. There are so many great blogs there. You can find what" +
          "you want in that blog."
          + "The Next Link is <a href=\"http://www.google.com.hk\">Google HK</a>";
  myTextView.setText(getClickableHtml(url));

实现自己的控制

我们需要在ClickSpan的onClick方法中加入自己的控制逻辑,比如我们使用傲游浏览器打开点击的链接。

public void onClick(View view) {
  Log.i(LOGTAG, "onClick url=" + urlSpan.getURL() );
    Intent intent = new Intent(Intent.ACTION_VIEW);
  intent.setData(Uri.parse(urlSpan.getURL()));
  intent.setPackage("com.mx.browser");
  startActivity(intent);
}

提醒

不要忘了设置TextView的autoLink属性。

 

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world"
    android:id="@+id/myTextView"
    android:autoLink="web"
/>

关注微信号:javalearns   随时随地学Java

或扫一扫

 

 

随时随地学Java



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [android 文本 链接] 推荐:

捕获Android文本中链接点击事件

- - 移动开发 - ITeye博客
关注微信号:javalearns   随时随地学Java. Android中的TTextView很强大,我们可以不仅可以设置纯文本为其内容,还可以设置包含网址和电子邮件地址的内容,并且使得这些点击可以点击. 但是我们可以捕获并控制这些链接的点击事件么,当然是可以的. 本文将一个超级简单的例子介绍一下如何实现在Android TextView 捕获链接的点击事件.

android中的自动链接

- - CSDN博客推荐文章
    下面和大家分享一下android中的自动链接,也就是android系统会自动识别我们文本中的网址,电话号码,邮箱地址,当我们点击的时候会自动打开浏览器,自动启动拨号程序,自动打开发送邮件的程序. 这么神奇的效果是怎么实现的呢.         //设置自动链接url,邮箱,电话号码. 由于模拟器不自带邮件客户端,所以自动链接邮箱的效果看不到,真机上就可以了.

android开发书籍emule下载链接

- jing77 - biAji HeRe
本来放在Verycd的,出于避免某些难以预料的问题的考虑(就像Verycd的诸多电影资源一样),我不得不觉得应该将Verycd作为一个备选方案. ed2k: [android.开发书籍].Beginning.Android.2.(Apress,.2010,.1430226293).pdf. ed2k: [android.开发书籍].Hello.Android.3rd.Edition.pdf.

Android开发者必备的42个链接

- - ITeye资讯频道
下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助大家从头开始学习Android开发,其他则面向较高级的开发者. 1、 谷歌Android开发者页面. 这里是主站点,在这您可以找到一切资源帮助您开始Android开发. 此站包含了很多关于学习基础知识的资源,完整的API引用,以及你开始开发所需的各种工具.

怎么在android实现通过浏览器点击链接打开apk

- - 移动开发 - ITeye博客
android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据. 为了实现这个功能可折腾了我好久,先上一份代码,经楼主验证是绝对可以用的而且也比较清晰的代码. (ps:还是先剧透下吧,第三方大部分浏览器无法成功. 点击浏览器中的URL链接,启动特定的App. 首先做成HTML的页面,页面内容格式如下:.

Android自定义GridView之实现一个图片加多个文本框

- - CSDN博客推荐文章
GridView的使用是很简单的,API Demo中有例子,但是要实现复杂的GridView,就需要自定义了. 今天我们要实现如下的效果:. 先说它的布局,它是由gridview和grid_item两部分组成. 接下来我们要新写一个继承自BaseAdapter类的Adapter类,在这里做grid item的适配.

HTTP长链接和短链接

- - Web前端 - ITeye博客
HTTP协议与TCP/IP协议的关系. HTTP的长连接和短连接本质上是TCP长连接和短连接. HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致.

链接大放送

- Fenix - 增强视觉 | 计算机视觉 增强现实
google收购了PittPatt公司. 该公司主要提供人脸检测,识别,跟踪等技术. Picasa里面不是已经有相当强大的人脸识别了么. 这样算来google已经收购了三家CV的创业公司. Google talk中开始采用SRI Technology的SRI 2D视频稳定技术. SRI是一家独立的非盈利的研发机构,鄙人是第一次听说,官网介绍如下:.

911全链接(1)

- Beardnan - 1416 教室
这几天的假期彻底被911打败了. 看了媒体眼花缭乱的911报道,心里只有一个念头,您这么High,下一次怎么弄. 《纽约时报》的网络特刊The Reckoning,分成9个单元,每个单元内容都很丰富,有深度报道也有邀请读者参与的互动;视觉部分则有专题摄影,视频和互动图表相配合. 整个专题的页面清秀,主图是当年911之后的公民摄影展览Here Is New York: A Democracy of Photographs中最为卖座的照片,摄影师Katie Day Weisberger在911事件之前几个月在飞机上拍到了这张照片,当时还是个刚拿相机不久的学生.

Office常用资源链接

- Weiye - ExcelFans
下面是我经常访问的一些站点以及对这些站点的简要介绍,他们都非常优秀,是我重要的学习资源. 国内优秀的Excel专业站点,有着海量的贴子、文章和应用资源,论坛上活跃着大量的MS MVP和Excel技术高手. 站点内容和活动丰富多彩,近几年出版的一系列Excel图书广受读者好评. 著名的Excel博客站点,有许多Excel技术、技巧和应用方面的文章及新鲜资讯,大多都是博主研究和使用Excel的成果,经常有许多Excel界的大师访问并留言或发表文章.