anroid textview自定义clickspan替换UrlSpan

/**

* 拦截超链接

* @param tv

*/

private void interceptHyperLink(TextView tv,String content) {

CharSequence text = Html.fromHtml(content);

if (textinstanceof Spannable) {

int end = text.length();

Spannable spannable = (Spannable) text;

URLSpan[] urlSpans = spannable.getSpans(0, end, URLSpan.class);

SpannableStringBuilder spannableStringBuilder =new SpannableStringBuilder(text);

// 循环遍历并拦截 所有http://开头的链接

        for (URLSpan uri : urlSpans) {

String url = uri.getURL();

if (url.indexOf("http://") ==0 || url.indexOf("https://")==0) {

CustomUrlSpan customUrlSpan =new CustomUrlSpan(getContext(), url,mIFragment);

spannableStringBuilder.setSpan(customUrlSpan, spannableStringBuilder.getSpanStart(uri),

spannableStringBuilder.getSpanEnd(uri), Spannable.SPAN_INCLUSIVE_INCLUSIVE);

spannableStringBuilder.removeSpan(uri);

}

}

tv.setText(spannableStringBuilder);

tv.setMovementMethod(LinkMovementMethod.getInstance());

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容