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(安卓)设置完autoLink属性后自定义跳转到指定界面
  2. Android: 上传图片到服务器
  3. Android自定义样式style.xml
  4. [置顶] Android中几种预定义样式
  5. 自定义单选按钮(RadioButton)的样式
  6. 善用Android预定义样式
  7. Android(安卓)Theme详细
  8. 善用Android预定义样式
  9. Android(安卓)Firebase Dynamic Links 动态链接使用心得

随机推荐

  1. android sqlit数据库升级,添加字段
  2. Android(安卓)UI界面(分辨率)最实用的的
  3. Android(安卓)SurfaceView 详解(一)
  4. Android之GPU过度绘制与图形渲染优化——
  5. Android事件总线框架设计:EventBus3.0源码
  6. Android(安卓)官方 Training 文档学习总
  7. 你觉得Android又凉了?那带你看下2020年And
  8. VINS在Android上的实现
  9. Android实现自定义测滑栏
  10. 用Ant手动打包android程序,android分包机