如何使用textView中的html.fromhtml()单击电话号码,链接和URL



我想在一个链接,url,电话号码 - 使用html.fromhtml()方法中单击的链接 TextView。我正在尝试----

txt.setText(Html.fromHtml("<b> Hi this is my text </b> <a href="http://bruynzeelkeukens.nl/keukenapparatuur/fornuizen">fornuizen</a>  Call me here: 011 058 299 88   ");
            txt.setMovementMethod(LinkMovementMethod.getInstance());

,但这不能使电话号码可单击。但是,如果我使用

txt.setAutoLinkMask(Linkify.ALL);
 txt.setLinksClickable(true);

然后,这使电话号码可单击,但不能单击锚定标签。
我该怎么做才能制作phoone号码,使用html.fromhtml()链接既可以单击?
因为我还必须读取HTML标签(例如'Bold'Tag,'Br'Tab),并且我不想使用WebView。

由于从跨度文本中删除跨度,因此出现了这个问题。链接将删除所有HTML跨度之前的跨度。
您必须存储HTML跨度并在innemify之后添加回去。

 private Spannable linkifyHTML(CharSequence text) {
        Spannable s = new SpannableString(text);
        URLSpan[] old = s.getSpans(0, s.length(), URLSpan.class);
        LinkSpec oldLinks[] = new LinkSpec[old.length];
        for (int i = 0; i < old.length; i++) {
            oldLinks[i] = new LinkSpec(old[i], s.getSpanStart(old[i]), s.getSpanEnd(old[i]));
        }
       Linkify.addLinks(s, Linkify.ALL);
       for (LinkSpec span : oldLinks) {
           s.setSpan(span.span, span.start, span.end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
       }
       return s;
    }

请参阅此答案以获取更多信息:如何在TextView

中进行所有3种类型的链接

最新更新