手记

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

在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现

代码如下:

第一种

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

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);

}

 

第二种

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

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不仅 识别超链接,包括电话号码之类的。

原文链接:http://www.apkbus.com/blog-705730-62539.html

0人推荐
随时随地看视频
慕课网APP