我有带有 autoLink 的 textview,但是每当我将自定义跨度(ClickableSpan)添加到 textview 时,它到 web url 和手机号码的自动链接都不起作用。有什么简单的方法可以解决这个问题。样式已应用,但单击不起作用。
问问题
1299 次
2 回答
4
https://stackoverflow.com/a/39494610/4639479我使用了这个答案并且工作正常
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()]);
}
于 2017-09-12T05:23:34.097 回答
0
这是因为 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;
}
于 2017-09-11T11:16:50.803 回答