Linkify.addLinks Span 不起作用

Linkify.addLinks with Span not working

我有带自动链接的文本视图,但每当我将自定义跨度 (ClickableSpan) 添加到文本视图时,它会自动 link 到网络 url 并且手机号码无法使用。有什么简单的方法可以解决这个问题。样式已应用,但点击不起作用。

这是因为 Html.fromHtml 和 Linkify.addLinks 在处理文本之前删除了以前的跨度。

使用此代码使其工作:

 public static Spannable linkifyHtml(String html, int linkifyMask) {
    Spanned text = Html.fromHtml(html);
    URLSpan[] currentSpans = text.getSpans(0, text.length(), URLSpan.class);

    SpannableString buffer = new SpannableString(text);
    Linkify.addLinks(buffer, linkifyMask);

    for (URLSpan span : currentSpans) {
        int end = text.getSpanEnd(span);
        int start = text.getSpanStart(span);
        buffer.setSpan(span, start, end, 0);
    }
    return buffer;
}

我使用了这个答案并且效果很好

public static String[] extractLinks(String text) {
    List<String> links = new ArrayList<String>();
    Matcher m = Patterns.WEB_URL.matcher(text);
    while (m.find()) {
        String url = m.group();
        links.add(url);
    }
    return links.toArray(new String[links.size()]);
}