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

TextView将链接替换为文字,点击文字还是点击链接效果,可以自己处理链接点击事件

2016-09-07 15:02 513 查看
TextView将链接替换为文字,点击文字的时候还是点击链接效果代码实现:

CharSequence text = textView.getText();
String textStr = text.toString();
if (text instanceof Spannable) {
int end = text.length();
Spannable sp = (Spannable) textView.getText();
URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);
HashSet<String> urlsSet = new HashSet<>();
for (int i = 0; i < urls.length; i++) {
urlsSet.add(urls[i].getURL());
}
Iterator<String> stringIterator = urlsSet.iterator();
while (stringIterator.hasNext()) {
String str = "<a href=\"%s\">%s</a>";
String url = stringIterator.next();
textStr = textStr.replace(url, String.format(str, url, "网络连接"));
}
textView.setAutoLinkMask(0);
textView.setText(Html.fromHtml(textStr));


自己处理链接点击事件代码:

private class MyURLSpan extends ClickableSpan {

        private String mUrl;

        MyURLSpan(String url) {

            mUrl = url;

        }

        @Override

        public void onClick(View widget) {

            if (mUrlLinkClickListener != null) {

                mUrlLinkClickListener.onLinkClick(widget, mUrl);

            }

        }

    }

Demo地址:https://github.com/huihuigithub/TestTextViewLink
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐