开发者社区> 问答> 正文

android怎么把数据库哭显示出来的网址显示成超链接

做了一个textview 想把数据库里查询出来的网址显示成超链接

展开
收起
爵霸 2016-06-20 11:19:00 2470 0
1 条回答
写回答
取消 提交回答
  • 在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+="百度一下";//注意这里必须加上协议号,即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不仅 识别超链接,包括电话号码之类的。

    2019-07-17 19:43:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载