use*_*897 8 android textview linkify
我正在尝试使用textview来处理超链接和电话号码.说我的文字是:
"555-555-555, www.google.com, <a href="www.google.com">Google!</a>"
Run Code Online (Sandbox Code Playgroud)
如果我在这个字符串上运行Html.fromHtml(),那么TextView会显示Google!正确地作为可点击链接而不是其他两个链接.
如果我在TextView上运行Linkify.addLinks(TextView,Linkify.All),那么前两个被正确识别为电话号码和网址,但html不会在最后一个中处理.
如果我同时运行它们,那么其中一个或另一个都被尊重,但不能同时进行.(Html.fromHtml将删除那里的html标签,但如果之后调用linkify则不会是链接)
关于如何让这两个功能同时工作的任何想法?所以所有链接都正确处理?谢谢!
编辑:此外,文本动态更改,所以我不知道如何能够为此设置Linkify模式.
这是因为,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;
}
Run Code Online (Sandbox Code Playgroud)
小智 1
尝试在文本视图上设置移动方法而不是使用 Linkify:
textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)