Android TextView 添加超链接的两种实现方式
TerryPumpki
8年前
<p>在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现</p> <p>代码如下:</p> <h2>第一种</h2> <pre> <code class="language-java">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); } </code></pre> <h2>第二种</h2> <pre> <code class="language-java">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); } </code></pre> <p>总结一下就是,以html显示超链接,必须写全url。以setAutoLinkMask(Linkify.ALL)可以不用不用写全,就能自动识别出来。</p> <p>这两种方法,都得设置一下setMovementMethod,才会跳转。</p> <p>另外setAutoLinkMask不仅 识别超链接,包括电话号码之类的。</p> <p> </p> <p>来自: <a href="/misc/goto?guid=4959674676044930229" rel="nofollow">http://cnbin.github.io/blog/2016/06/18/textview-tian-jia-chao-lian-jie-liang-chong-shi-xian-fang-shi/</a></p> <p> </p>