android:autoLink="web"-设置自动识别链接,值web为匹配Web网址

android:autoLink="phone"-设置自动识别链接,值phone为匹配电话号码

android:autoLink="email"-设置自动识别链接,值email为匹配Email地址

android:autoLink="all"-设置自动识别链接,值all为匹配所有

 

Linkify是一个辅助类,通过RegEx样式匹配,自动地在TextView类(和继承的类)中创建超链接。

         符合特定的RegEx样式的文本会被转变成可点击的超链接,这些超链接隐式地调用startActivity(new Intent(Intent.ACTION_VIEW, uri)),符合的文本会作为目标URI。

         你可以指定任意的字符串样式为链接;Linkify类提供了预置的通用内容类型(如电话号码和e-mail、web地址)。Linkify.addLinks()静态方法接受一个View来制作链接,还包括一个或多个支持的默认内容类型的位结果。Linkify类提供了一些内容类型:WEB_URLS、EMAIL_ADDRESSES、PHONE_NUMBERS和ALL。接下来的代码片段显示如何为TextView制作链接显示web和e-mail地址为超链接。当点击时,它们会相应地打开浏览器或e-mail应用程序。

         TextView myTextView = (TextView)findViewById(R.id.myTextView);

         Linkify.addLinks(myTextView, Linkify.WEB_URLSLinkify.EMAIL_ADDRESSES);

或者

         TextView myTextView = (TextView)findViewById(R.id.myTextView);

         myTextView.setAutoLinkMask(Linkify.EMAIL_ADDRESSES|Linkify.MAP_ADDRESSES|Linkify.PHONE_NUMBERS);

    myTextView.setMovementMethod(LinkMovementMethod.getInstance());

删除链接:

         myTextView.setAutoLinkMask(0);

可是有时候我们需要自定义一些超链接,像新浪微博中的@和#,这时候怎么办呢?

为了定义自己的链接字符串,你需要创建一个RegEx样式来匹配文本,进而显示成超链接。和本地类型一样,通过调用Linkify.addLinks来指定目标View,但这次,传入的是的RegEx样式。你还可以传入一个前缀,当链接点击时,它会添加到目标URI上。例如:

         Pattern p = Pattern.compile("\\bquake[-9]*\\b", Pattern.CASE_INSENSITIVE);

         Linkify.addLinks(myTextView, p, "content://com.paad.earthquake/earthquakes/");

 

 

更多相关文章

  1. Android自定义样式style.xml
  2. [置顶] Android中几种预定义样式
  3. 自定义单选按钮(RadioButton)的样式
  4. Android Firebase Dynamic Links 动态链接使用心得
  5. android中系统自带样式
  6. Android系统中自带的图标&一些预定义样式&参考颜色值
  7. Android 自定义RadioButton样式 RadioGroup横向排列并分行

随机推荐

  1. Android开发艺术探索——第二章:IPC机制(上
  2. Android 中各种JAVA 包的功能描述
  3. 我的Android学习计划--走在架构师的路上
  4. Android(安卓)ANR 探索
  5. Android:SNS客户端开发三:数据库操作(一)
  6. 为什么iOS比Android更吸引开发者
  7. Android ListView拖动时背景变黑的解决方
  8. android:duplicateParentState属性解释
  9. Android基础笔记(三)-数据存储和界面展现
  10. Android学习计划表