2012-10-25 4 views
2

Textview에서 Html.fromHtml() 메서드를 사용하여 링크, URL, 전화 번호를 모두 클릭 가능하게하고 싶습니다. 나는 이것을 시도하고있다 ----TextView에서 Html.fromHtml()을 사용하여 전화 번호, 링크 및 URL을 클릭하는 방법

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'태그, 'br'탭과 같이) 읽어야하므로 WebView를 사용하고 싶지 않습니다.

+0

간단한 표시 텍스트 \를하고 그것이 내가 전체 텍스트 뷰는 클릭 만 PHONENUMBER 만들고 싶어하지 않는 @TheMechanic eaier 방법 –

+0

하는 온 클릭 리스너를 설정, 링크 –

+0

k 내 친구 내가 u로 새로 게시 할 것입니다 –

답변

1

스팬 텍스트에서 스팬을 제거하기 때문에이 문제가 발생합니다. Linkify는 모든 applieing html spans를 제거합니다.
링크를 저장 한 후 HTML 스팬을 다시 추가해야합니다.

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; 
    } 

대한 추가 정보를 원하시면이 답변을 참조하십시오 How to make all 3 types of links in textview

관련 문제