2017-09-08 5 views
6

Ich habe Textansicht mit AutoLink, aber jedes Mal, wenn ich benutzerdefinierte span (ClickableSpan) Textview hinzufügen seine automatische Link zu Web-URL und Handynummer funktioniert nicht. Gibt es einen einfachen Weg, um dieses Problem zu lösen? Der Stil wird angewendet, aber der Klick funktioniert nicht.Linkify.addLinks mit Span funktioniert nicht

+0

Beitrag einen Code, in dem Sie zeigen, was Sie haben versucht, so weit. – azizbekian

Antwort

4

https://stackoverflow.com/a/39494610/4639479 Ich habe diese Antwort und hat gut funktioniert

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()]); 
} 
0

Dies liegt daran, dass Html.fromHtml und Linkify.addLinks vorherige Bereiche entfernt, bevor der Text verarbeitet wird.

Verwenden Sie diesen Code, um es zu arbeiten:

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; 

}