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 ...
一周排行
  • int dianwei; int led = 13; void setup() {  // put your setup code here, to run once:  Serial.begin(9600);  p ...
  • 问题导读: 1.job的本质是什么? 2.任务的本质是什么? 3.文件系统的Namespace由谁来管理,Namespace的作用是什么? 4.Namespace 镜像文件(Namespace image)和操作日志 ...
  • 来源:新华社 一些基本的系统命令往往可以在保护网络安全上起到很大的作用,下面几条命令的作用就非常突出. 首先进入dos命令行,方法:点击菜单开始->运行->输入CMD回车. 检测网络连接 netstat ...
  • http://blogs.technet.com/b/topsupportsolutions/archive/2013/11/06/top-support-solutions-for-microsoft-sql-se ...
  • /// <summary> /// 集合添加的控件 /// 涂聚文20150339 /// </summary> public void AddNewTextBox() { Point p = ...
  • H3C交换机配置命令大全 1.system-view 进入系统视图模式 2.sysname 为设备命名 3.display current-configuration 当前配置情况 4. language-mode ...
  • 模型 public class people { public string name{get;set;} public bool? sex{get;set;} } 转换器 namespace Helper { pu ...
  • 采药 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 54 ...
  • 全民飞机大战灵魂战车属性怎么样_灵魂战车属性技能图鉴一览.一起跟随小编过来看看吧 全民飞机大战灵魂战车属性好不好?全新2月战机上线,首度特卖,在这个光棍节上架是不是要我们只能打飞机了,小编下面就带来<全民飞机大 ...
  • 在工作中,需要不断的设置COM串口DTR线(pin4)高低电平来达到自动控制的目的.   Google了一下,发现设置COM串口DTR线高电平API提供了一个函数 BOOL WINAPI SetCommConfig( ...