Android(java)学习笔记147:textView 添加超链接(两种实现方式,,区别于WebView)

1.方式1:

        LinearLayout layout = new LinearLayout(this);
        LinearLayout.LayoutParams  params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
                LayoutParams.MATCH_PARENT);
        TextView textView = new TextView(this);
        String html = "有问题:\n";
        html +="<a href='http://www.baidu.com'>百度一下</a>";//注意这里必须加上协议号,即http://
        //public static Spanned fromHtml(String source):这里返回的是Spanned,由于这个Spanned是继承自CharSequence
        //所以,可以不经过类型转化直接用CharSequence接收Spanned类型
        CharSequence charSequence = Html.fromHtml(html);
        textView.setText(charSequence); 
        //设置该句使文本TextView的超连接起作用,LinkMovementMethod.getInstance():返回一个MovementMethod实例
        textView.setMovementMethod(LinkMovementMethod.getInstance());
        layout.addView(textView); 
        this.setContentView(layout,params); 

2.方式2:

        LinearLayout layout = new LinearLayout(this);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
                LayoutParams.MATCH_PARENT);
        TextView textView = new TextView(this);
        String html = "有问题:\n";
        html+="www.baidu.com";//这里即使不加协议HTTP;也能自动被系统识别出来
        textView.setText(html);
        //这里即使不加协议好HTTP;也能自动被系统识别出来
        textView.setAutoLinkMask(Linkify.ALL);
        //设置该句使文本TextView的超连接起作用
        textView.setMovementMethod(LinkMovementMethod.getInstance());
        layout.addView(textView);
        this.setContentView(layout,params);

 TextView.setAutoLinkMask(Linkify.ALL);

Linkify.ALL:all available patterns(匹配所有)

Linkify.MAP_ADDRESSES :street addresses should be matched in methods(匹配街道地址编号)

Linkify.PHONE_NUMBERS :phone numbers(匹配电话号码)

Linkify.EMAIL_ADDRESSES : email addresses(匹配Email地址)

Linkify.WEB_URLS : web URLs  (匹配Web网址)

 

更多相关文章
  • 使用 Windows 集成安全性访问 SQL Server 如果您的应用程序运行在基于 Windows 的 Intranet 上,则也许可以将 Windows 集成身份验证用于数据库访问.集成安全性使用在操作系统线程上建立的当前 Windows 标识来访问 SQL Server 数据库.然后,您可以 ...
  •   前言: 正则表达式(英语:Regular Expression)原属于计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里边,正则表达式通常被用来检索.替换那些符合某个模式的文本.许多程序设计语言都支持利用正则表达式进行字符串操作.例如,P ...
  •     c++中程序员使用模板能够写出与类型无关的代码,提高源代码重用,使用合适,大大提高了开发效率.此前,可以使用宏实现模板的功能,但是模板更加安全.清晰.在编写模板相关的代码是我们用到两个关键词:template和class(或者typename),class和typename基本没有区别. 1 ...
  • 创建数据表 Create table [if not exists] table_name(column_name data_type,…….) UNSIGNED 无符号SIGNED 有符号     查看创建的表 show tables;   查看mysql中所有的表 show tables fro ...
  • 菜鸟玩云计算之廿一: saltstack之pillar参考:点击打开链接查看pillar数据:# salt '*' pillar.itemspillar的默认根目录在:/srv/pillar,可以通过下面的参数更改配置文件/etc/salt/master:pillar_roots: your_dir ...
  • 以下内容只是一个小白菜鸟的理解和总结,目的仅在于梳理思路. 13年的时候,我就说要学JAVA,有个C++高手同事赞许地说:"嗯,不错,SSH..."我不禁肃然起敬.SSH!多么高大上的词,JAVA就是这样,这框架,那概念的,理论一套一套的,特别多,让人听了就兴奋到不行. 那么,S ...
一周排行
  • 一. 行程安排      1. 2月15日 - 16日,出发前准备工作      2. 2月17日 0 AM,南京市江宁区太平花苑 出发 - 预计当日0 PM抵达 山东省日照市东港区.如下图:     ...
  • 很多人在博客或微博里问我如何从小二本考上好学校的,求考研经验啥的.其实考研经验没有什么,就是努力,努力再努力,但很多人还是因为不自信等各种原因未能坚持下来,下面这篇文章也许能给不自信的孩纸们打打气,YOU CAN I ...
  • 版权信息 转载请注明出处 [ametake版权所有]http://blog.csdn.net/ametake欢迎来看 题目很简单,本质还是练习一下vector 题目描述 Description 给定一个正整数序列,请 ...
  • 每经记者 张业军 发自广州在经历了电商行业两届"双十一"对消费者的颠覆性占领后,家电与数码行业传统渠道的逆袭却在今年如火如荼.目前,从国美.苏宁到各区域家电连锁品牌,正共同发起了一场"百 ...
  • 都说三四月份是找工作的高峰期,我也搭上了这个离职潮,踏上了新的求职之路.今天办完离职手续后,一个人在路上想了很多,不知不觉来北京两年了.离职后的心情,不是彻底放松了下来,反而很期待新工作能给我带来什么样的刺激. 在公 ...
  • 你在工作?当然.你用招聘网站求职成功?好像有.用的哪家?忘记了--这就是目前所有招聘网站所面临的一致性问题.正因为此,在招聘这个每年45亿(艾瑞统计).年复合增长持续维持在28%的行业中,一直在城头变化大王旗.昨天还 ...
  • 这是一篇由纳斯达克首席架构师Nate Sammons撰写的文章. 纳斯达克集团公司在全球范围内负责金融交易运营工作,且每天处理的数量总量极为庞大.我们运行着种类繁多且数量可观的分析及监控系统,而且这些系统全部需要访问 ...
  • 1 01.public static string StripHTML(string strHtml) 2 02. { 3 03. string[] aryReg ={ 4 04. @"<script ...
  • 演示重点是带有maxCache Plus分层软件的Adaptec by PMC 8系列RAID卡及基于12Gb/s SAS HBA的软件定义存储解决方案 中国北京,2014年3月11日--引领大数据连接.传送以及存储 ...
  • This is a preview-quality chapter of our continuously deployed eBook on AngularJS for .NET developers. You c ...