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 ...
一周排行
  • 修改资源管理器打开后的默认路径为计算机目录的方法   在Win7下使用超级任务栏时,将文件夹锁定在超级任务栏打开的默认都是库,下面我们将其改为计算机目录.  www.2cto.com   在锁定文件夹处右键,继续右键 ...
  • 8月16日,当当网正式对外披露2012年二季度财报.财报显示,当当网整体净营收12亿元人民币,同比增长53%:其中出版物品类营收7.7亿元人民币,同比增长32%:百货业务营收4亿元人民币,同比增长110%.这是当当网 ...
  • FineCMS是一款基于PHP+MySql开发的内容管理系统,采用MVC设计模式实现业务逻辑与表现层的适当分离,使网页设计师能够轻松设计出理想的模板,插件化方式开发功能易用便于扩展,支持自定义内容模型和会员模型,并且 ...
  • 云计算市场在不断壮大,围绕着云计算技术产生的利润数字让企业和供应商倍感欢欣鼓舞.然而,云计算市场的大部分资金主要来自于对于传统软硬件市场的改造和替换.IT大环境正在不断改变,而且会持续改变下去. 在近日举行的2013 ...
  • The term "C/C++ Runtime Library" doesn't mean anything, it is roughly the name of a project settin ...
  •         在继续向下看,我们发现了USBDeviceAttach()函数,这可是最重要的地方了,当有USB设备插入插口以后,操作系统是如何识别它的呢,如何将其做为一个文件夹加以访问的呢?我们就来解开这里的谜团. ...
  • sm.php <?php class smtp{/* Public Variables */var $smtp_port;var $time_out;var $host_name;var $log_file;v ...
  • 前天辛辛苦苦把网站搭建起来了.然后把原来的Wordpress自动发布的第一篇测试文章改成了我自己的内容 今天发文章时,惊奇的发现文章的ID竟然已经到达了19了.鉴于我以前折腾Wordpress的经验,我知道这是Wor ...
  • Kafka系列: Kafka#1:QuickStart Kafka#2:消息队列 Kafka#3:分布式设计 存储机制 Kafka relies heavily on the filesystem for stori ...
  • 最近有个需求,公司需要搭建一个预发布环境出来, 需要把生产中的AD用户导出至预发布环境中,刚开始准备用csvde导出导入,后来干脆使用PowerShell,下面是针对某一个OU下的用户进行复制到另外一个域中并启用账户 ...