原创

Android TextView 添加超链接的两种实现方式

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

 

来自: http://cnbin.github.io/blog/2016/06/18/textview-tian-jia-chao-lian-jie-liang-chong-shi-xian-fang-shi/

 

正文到此结束
Loading...