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.错误描述 SQL错误:ORA-12899:列"USER"."T_USER_TAB"."USER_ID"的值太大(实际值:4,最大值:2) 2.错误原因 ...
  • VRRP原理 虚拟路由器冗余协议(VRRP)是一种标准化协议,主要用于非cisco设备厂商.它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台.控制虚拟路由器 IP 地址的 VRRP 路由器称 ...
  • 2013年,我的推荐博客汇总 2013年即将过去,盘点这一年来的成果,总共发表文章54篇,其中推荐文章为36篇,推荐率为66%,比去年有小幅提升.年底在众多同行和业内专家的层层赛选中,我的博客再次当选2013年度十大 ...
  • 本文介绍如何通过修改注册表为Windows XP SP3增加网络身份验证功能. 实际工作中,你可能会时常使用远程桌面连接,比较常见的一种情况是Windows XP与Windows Vista,默认设置下,Window ...
  • 1.在 WORD 中, ( D )不能够通过“插入”→“图片”命令插入,以及通过控点调整大小.  A)剪贴画             B)艺术字   C)组织结构图     D)视频   2.在 WORD 编辑状态下 ...
  • 三层交换原理一直是许多读者朋友最难理解的,在日常的读者交流中也经常见到有读者提出这方面的问题,特别是三层交换与路由原理方面的区别与联系.其实三层交换机不仅同时与二层交换和路由有着密切的联系,同时与要依靠三层的ARP协 ...
  • 前言:此篇拟将遇到的SQL语句的相关问题汇总,以便后期查阅. 一.distinct关键字 distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所 ...
  •   先简要说明一下我在项目中的必要场景:因为采用的Shiro的验证插件,以及一些比较固定的domain,所以会保留Hibernate的domain对象,但是在特定的domain中,要求其字段是可维护的,这对于关系数据 ...
  • 质量异常处理流程图 --摘自<公司开了,你该这样管理>作者:张国祥 其他详细内容见<公司开了,你该这样管理> 本文出自 "企业流程优化设计专家-.." 博客,请务必保留此出 ...
  •  用于组织数据的列表 学习了这么多控制网页显示的HTML标签,读者可以初步制作纯文章页面了.本节学习HTML中的列表元素,列表形式在网站设计中占有比较大的比重,显示信息非常整齐直观,便于用户理解.在后面的CSS样式学 ...