0

호출되지 않습니다. 나는 (웹 링크에 대한 예)를 설정하려면 다음 코드를 사용OnClickListener를은 내가 <strong>텍스트의 몇</strong> 또는 <strong>웹</strong> 링크 중 하나를 <strong>이메일 주소입니다 내 안드로이드 응용 프로그램에서</strong> 링크가

TextView textView = (TextView) findViewById(textViewId); 
spannedText = Html.fromHtml("<a href=\"" + url + "\">" + titleText + "</a>"); 
textView.setText(spannedText, TextView.BufferType.SPANNABLE); 
textView.setMovementMethod(LinkMovementMethod.getInstance()); 
textView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Handle click 
    } 
}); 

TextView 같은 android:linksClickable, android:clickable 또는 android:focusable 설정 특별한 속성이 없습니다. 스타일은 @android:style/TextAppearance.Small에서 상속됩니다.

어떤 이유인지 OnClickListener은 결코 호출되지 않습니다.

+0

당신은 그 한 가지를 사용해야합니다. 'LinkMovementMethod' 또는'OnClick' – SorryForMyEnglish

답변

3

제거

textView.setMovementMethod(LinkMovementMethod.getInstance()); 

수동이

textView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Handle click 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(intent); 

    } 
}); 
+0

Thx. 'OnClickListener'가'LinkMovementMethod'의 설정을 덮어 쓰지 않는 것은 정말로 이상합니다. 여전히'LinkMovementMethod'가 실제로 무엇에 좋은지 이해하지 못합니다. 이메일 링크의 경우'url' 문자열에''mailto : "'접두사를 붙이십시오. – JJD

0

붙여 넣은 코드 스 니펫에서 알 수 없습니다. 더 많은 코드를 보여주십시오. 예를 들어, textView 선언은 어떻게 생겼습니까?

0

당신이 텍스트보기를 오버라이드 (override) 할 수있는 부모 뷰에 온 클릭 리스너가 있습니까 링크 다음을 추가 코드? 또한 익명의 내부 클래스를 리스너로 사용하지 않으려는 대신 click 이벤트에 대해 아래의 view.OnClickListener를 사용하십시오.

myActivity extends Activity implements View.OnClickListener { 
    @Override 
    publiv void onClick(View v) { 
     if(V.getId() == textViewId) { 
      // do work 
     } 
    } 
}