欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

textView 添加超链接(两种实现方式)

程序员文章站 2023-11-04 14:45:34
在textview添加超链接,有两种方式,第一种通过html格式化你的网址,一种是设置autolink,让系统自动识别超链接。 代码如下: 第一种 复制代码 代码如下: p...
在textview添加超链接,有两种方式,第一种通过html格式化你的网址,一种是设置autolink,让系统自动识别超链接。

代码如下:

第一种
复制代码 代码如下:

public class mainactivity extends activity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
linearlayout layout = new linearlayout(this);
layoutparams params = new layoutparams(layoutparams.match_parent,
layoutparams.match_parent);
textview textview = new textview(this);
string html = "有问题:\n";
html+="<a href='http://www.baidu.com'>百度一下</a>";//注意这里必须加上协议号,即http://。

//否则,系统会以为该链接是activity,而实际这个activity不存在,程序就崩溃。
charsequence charsequence = html.fromhtml(html);

textview.settext(charsequence);

textview.setmovementmethod(linkmovementmethod.getinstance());
layout.addview(textview);
this.setcontentview(layout,params);
}

第二种
复制代码 代码如下:

public class mainactivity extends activity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
linearlayout layout = new linearlayout(this);
layoutparams params = new layoutparams(layoutparams.match_parent,
layoutparams.match_parent);
textview textview = new textview(this);
string html = "有问题:\n";
html+="www.baidu.com";//这里即使不加协议好http;也能自动被系统识别出来。
textview.settext(html);
textview.setautolinkmask(linkify.all);
textview.setmovementmethod(linkmovementmethod.getinstance());
layout.addview(textview);
this.setcontentview(layout,params);
}

总结一下就是,以html显示超链接,必须写全url。以setautolinkmask(linkify.all)可以不用不用写全,就能自动识别出来。

这两种方法,都得设置一下setmovementmethod,才会跳转。
另外setautolinkmask不仅 识别超链接,包括电话号码之类的。