`
qqchinaok
  • 浏览: 217500 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android开发之Linkify

阅读更多

    <h1>Android开发之Linkify</h1>
<p>/*</p>
<p>* Android开发之PopupWindow</p>
<p>*</p>
<p>* Created on: 2011-8-11</p>
<p>* Author: blueeagle</p>
<p>* Email: liujiaxiang@gmail.com</p>
<p>*/</p>
<p></p>
<p>Linkify是一个helper类,他会自动地在TextView类(或者TextView的派生类)中通过RegEx模式匹配来创建超链接。</p>
<p> 那些匹配一个特定的RegEx模式的文本都将会被转换为一个可以单击的超链接,这些超链接可以隐式地使用匹配的字符串作为目标URI来触发StartActivity(new Intent(Intent.ACTION_VIEW,uri))。可以指定任何希望转换为连接的字符串模式。</p>
<p> 静态的Linkify.addLinks方法可以通过接受View来建立链接,Linkify类提供并支持一种或者多种默认的内容类型的位掩码(bitmask):WEB_URLS、EMAIL_ADDRESSES、PHONE_NUMBERS和ALL。</p>
<p> 下面的代码段展示了如何通过一个TextView来把Web和E-mail地址显示为超链接。当单击这些超链接的时候,他们就会分别打开浏览器或者电子邮件服务器。</p>
<p> 可以使用android:autoLink属性来在一个布局资源内部linkify View。它支持下列一个或者多个(使用|分隔开)顾名思义的值:none,web,email,phone,或者all。</p>
<p> 在布局文件和JAVA文件中可以做如下设置:</p>
<p>&lt;TextView android:id="@+id/myTextView1"<br>
android:layout_width= "wrap_content"<br>
android:layout_height="wrap_content"<br>
android:autoLink="web|email|phone"&gt;<br>
&lt;/TextView&gt;<br>
通过在程序中设置<br>
myTextView1.setText(“http://www.baidu.com”);<br>
myTextView1.setText(“13800138000”);<br>
myTextView1.setText(“hello@163.com”);</p>
<p>也可以在string文件里设置字符串,同样,要用|字符分割开来。</p>
<p></p>
<p>下面对自定义的linkify做一些解释:搜索了一下,网上几乎所有的文章都是抄的Android高级编程这本书里的,希望大家在学习的时候多动动手,一下就抄过来真没意思。</p>
<p>自定义的linkify可以检测到特定字符串后,将其变为可点击的字符串形式从而可以从一个“源”中获取想要的东西。手册中对含有三个参数的addlinks这样写:</p>
<p>Applies a regex to the text of a TextView turning the matches into links. If links are found then UrlSpans are applied to the link text match areas, and the movement method for the text is changed to LinkMovementMethod.</p>
<p>那么用如下代码解析一下:</p>
<p align="left"> <strong>int</strong> flags = Pattern.<em>CASE_INSENSITIVE</em>;</p>
<p align="left"> Pattern p = Pattern.<em>compile</em>("\\bnews[0-9]*\\b", flags);</p>
<p align="left"> Linkify.<em>addLinks</em>(myTextview, p,"http://www.baidu.com/");</p>
<p align="left"> </p>
<p>这几行代码表示:[0-9]*表示通配符,0到9中没有或者有一个,<a>\\b</a>表示过滤掉前面的<a>\\b</a>当然你也可以写成”news[0-9]”;而所得的字符,将被添加到http://www.baidu.com/的后面;比如我在myTextView1.setText(“news1|news2|news”)设置以后,执行的结果将是有三个可以点击的文字,点击之后分别连接到<a href="http://www.baidu.com/news1">http://www.baidu.com/news1</a>;等当然,目前这个操作是对网页进行的操作,如果要对本地的内容提供器进行操作的话,就将后面的“源”写成content://。</p>
<p>当然,上述方法不适用于建立一个文字的超链接。对于文字超链接,可以使用如下的代码:</p>
<p align="left"> SpannableString sp = <strong>new</strong> SpannableString("点击百度");
</p>
<p align="left"> //设置超链接 </p>
<p align="left"> sp.setSpan(<strong>new</strong> URLSpan("http://www.baidu.com"), 2, 4,
</p>
<p align="left"> Spanned.<em>SPAN_EXCLUSIVE_EXCLUSIVE</em>); </p>
<p align="left"> myTextview.setText(sp);</p>
<p> myTextview.setMovementMethod(LinkMovementMethod.<em>getInstance</em>());
</p>
<p>别的都没什么问题,就看那个2,4代表字符串从第三个字符起到第四个字符结束。最后一句话表示这个文字可以点击。</p>
<p></p>
<p>对于Linkify的MatchFilter和Transform Filter我认为没有什么特别的研究价值。在这里不做多的说明了。</p>
<p></p>
 
分享到:
评论

相关推荐

    android 具有正确表达式的TextView Linkify规则

    总的来说,`Linkify` 在Android开发中为我们在`TextView`中创建链接提供了极大的便利。通过合理地配置`Linkify`规则,我们可以使应用的用户体验更加友好,同时也提高了代码的可维护性。在实际项目中,应根据需求选择...

    Linkify_android_

    在Android开发中,"Linkify"是一个非常实用的功能,它能帮助开发者自动将文本中的URL、电话号码、电子邮件地址等可链接的内容转化为可点击的超链接。标题"Linkify_android_"暗示我们将深入探讨如何在Android应用中...

    android-linkify:安卓链接

    在Android开发中,`android-linkify`是一个非常实用的工具,它可以帮助开发者自动将文本中的URL、电子邮件地址等可链接的内容转化为可点击的链接。这个功能对于那些包含大量网络资源或者需要用户快速访问链接的应用...

    Android 自动判断是电话,网址,EMAIL方法之Linkify的使用

    在Android开发中,有时我们需要在应用中处理用户输入的文本,比如当用户在EditText中输入电话号码、网址或电子邮件地址时,我们希望点击这些内容可以自动启动相应的应用程序,如拨打电话、打开网页或发送邮件。...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Android 实现TextView上下滚动效果

    在Android开发中,实现TextView的上下滚动效果可以让信息在有限的空间内持续展示,提升用户体验。以下将详细讲解如何实现这一功能。 首先,我们要明白TextView是Android SDK中的一个基础组件,用于显示单行或多行...

    Google Android SDK开发范例大全的目录

    2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色...

    android自动识别输入的字符串

    在Android开发中,有时我们需要对用户输入的字符串进行智能处理,比如当用户在文本框中输入网址、邮箱地址或者电话号码时,我们希望系统能够自动识别这些内容,并将其转化为可点击的链接,以便用户可以直接点击打开...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    Google Android SDK开发范例大全(完整版) 包含部分书中源码 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 ...

    LinkifyCustom

    在Android开发中,`Linkify`是一个非常实用的工具类,它可以帮助我们将字符串中的特定模式自动转换为可点击的超链接。例如,`Linkify`默认可以识别并处理电话号码、网址以及电子邮件地址,使它们在TextView中显示...

    Google Android SDK开发范例大全.docx

    ### Google Android SDK 开发...以上是《Google Android SDK开发范例大全》中部分章节的主要知识点概述,这些知识点覆盖了Android应用开发的基础到高级技术,对于希望深入了解Android开发的人来说是非常宝贵的资源。

    Andoid使用Linkify自动判断输入是否是电话、网址、Email.rar

    Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用,本教程主讲的是,当我们在一个EditText输入电话或者网址还是Email的时候,让Android自动判断,当我们输入的是电话,我们点击输入内容将调用打电话程序,...

    给textview加链接---Linkify用法

    在Android开发中,TextView是用于显示文本的基本组件。然而,我们常常希望在TextView中的某些文本具有超链接功能,用户点击后能够跳转到网页或执行其他操作。这就是Linkify的作用,它能帮助我们将普通文本转化为可...

    Google Android SDK开发范例大全(完整版)

    余志龙,来自于手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及J2EE、JSP、Servlet、JavaBeans、PHP、C#等程序语言,熟悉面向对象技术与Eclipse...

    Android应用:TextView超级链接的2种实现方法

    在Android开发中,TextView是用于显示文本的基本组件。在许多情况下,我们可能需要在TextView中嵌入可点击的超级链接,比如展示帮助文档或者跳转到网页。本篇将详细介绍两种实现TextView超链接的方法:XML文件实现和...

    Android识别TextView的Uri并在自己的应用程序中打开

    在Android开发中,有时我们需要处理TextView中的链接,例如点击一个包含URI(统一资源标识符)的文本时,可能希望在用户点击后不离开当前应用,而是由我们的应用程序来处理并打开该链接。这个过程涉及到对Uri的识别...

Global site tag (gtag.js) - Google Analytics