2017-09-08 89 views
6

我有autoview的textview,但每當我添加自定義span(ClickableSpan)到textview其自動鏈接到網址和手機號碼不工作。有沒有簡單的方法來解決這個問題。樣式已應用,但點擊不起作用。Linkify.addLinks與跨度不工作

+0

張貼代碼,您演示一下你嘗試過如此遠。 – azizbekian

回答

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

}