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