您的位置:首页 > 移动开发 > Android开发

Android中在TextView里面替换掉带html标签和不带标签的url,并支持点击

2017-03-23 15:00 501 查看
直接上代码

                String textStr = "文字内容"

                int end = textStr.length();

                Spannable sp = (Spannable) Html.fromHtml(textStr);

                URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);

                SpannableStringBuilder style = new SpannableStringBuilder(sp);

                style.clearSpans();

                if (urls != null && urls.length > 0) {

                    for (URLSpan url : urls) {

                        MyURLSpan myURLSpan = new MyURLSpan(url.getURL());

                        style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

                    }

                } else {

style = new SpannableStringBuilder(textStr);
style.clearSpans();


                    Pattern pattern = Pattern.compile("(https?|codoon)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]");

                    Matcher matcher = pattern.matcher(textStr);

                    while (matcher.find()) {

                        int startAt = matcher.start();

                        int endAt = matcher.end();

                        MyURLSpan myURLSpan = new MyURLSpan(textStr.substring(startAt, endAt));

                        style.setSpan(myURLSpan, startAt, endAt, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

style.replace(startAt,endAt,"链接");


                    }

                }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: