`
qqchinaok
  • 浏览: 213410 次
  • 性别: 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>
 
分享到:
评论

相关推荐

    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...

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

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

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

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

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

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

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

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

    Google Android SDK 开发范例大全01

    Google Android SDK开发范例大全 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与...

    Google Android SDK 开发范例大全02

    Google Android SDK开发范例大全 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与...

    Google Android sdk 开发范例大全 部分章节代码

    Google Android SDK开发范例大全 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与...

    Google+Android+SDK开发范例大全

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

    Android实现TextView中文字链接的4种方式介绍及代码

    当然也可以在java代码里 做,textView01.setAutoLinkMask(Linkify.ALL); 2.将要处理的文字写到一个资源文件,如string.xml,然后的java代码里引用(直接写在代码了是不可行的,会直接把文字都显示处理) 3.用Html类的...

Global site tag (gtag.js) - Google Analytics