zoukankan      html  css  js  c++  java
  • Android之捕获TextView超链接

    非著名程序员

    应该是好久没有写有关技术类的文章了,今天分享一篇捕获TextView超链接的文章,希望对大家有所帮助,我终于在歪路上回归正途了。这个捕获TextView超链接应该算是比较常用吧,如果你会了,就不用看了,如果还不会,可以看一眼,非常简单。

    捕获TextView超链接这个意思就是在一段文字当中如果有超链接的网址在当中,在TextView中会特别显示,和其它文字颜色不一样,还可以点击执行相应的操作。

    效果图如下:


    具体代码如下:

    tv = (TextView) findViewById(R.id.tv);
    String html = "「非著名程序员」可能是东半球最好的技术分享公众号。每天,每周定时推送一些有关移动开发的原创文章和教程。 不信你可以
    ";
    html += "<a href='http://www.baidu.com'>百度一下</a> 哈哈,有意思吧!记住微信号是:smart_android 哦";
    CharSequence charSequence = Html.fromHtml(html);
    SpannableStringBuilder builder = new SpannableStringBuilder(
    charSequence);
    URLSpan[] urlSpans = builder.getSpans(0, charSequence.length(),
    URLSpan.class);
    for (URLSpan span : urlSpans) {
    int start = builder.getSpanStart(span);
    int end = builder.getSpanEnd(span);
    int flag = builder.getSpanFlags(span);
    final String link = span.getURL();
    builder.setSpan(new ClickableSpan() {
    @Override
    public void onClick(View widget) {
    // 捕获<a>标签点击事件,及对应超链接link
    }
    }, start, end, flag);
    builder.removeSpan(span);
    }
    tv.setLinksClickable(true);
    tv.setMovementMethod(LinkMovementMethod.getInstance());
    tv.setText(charSequence);
    其实看完代码就知道了,非常简单。大家可以试一试哦!获取demo的方法跟以前一样,只需在公众号里回复关键字“1”即可获得。

    微信公众号:smart_android ,公众号[非著名程序员]可能是东半球最好的技术分享公众号。每天,每周定时推送一些有关移动开发的原创文章和教程。

  • 相关阅读:
    2018.12.17-dtoj-1174-出现或反转后出现在每个字符串中的最长子串
    2018.12.17-dtoj-1173-每个字符串至少出现两次且不重叠的最长子串
    2018.12.17-dtoj-1171-长度不小于k的公共子串的个数
    2018.12.17-dtoj-1170-最长公共子串
    2018.12.17-dtoj-1168-连续重复子串
    欧拉四面体公式
    超级密码 hdu1226 bfs
    糖果大战 hdu1204
    Find The Multiple (poj1426 一个好的做法)
    Life Forms (poj3294 后缀数组求 不小于k个字符串中的最长子串)
  • 原文地址:https://www.cnblogs.com/loonggg/p/4981781.html
Copyright © 2011-2022 走看看