0

我有一對夫婦文本的鏈接在我的Android應用,這要麼是電子郵件地址網頁鏈接。我用下面的代碼片段對它們進行設置(例如,用於web鏈接):OnClickListener的TextView中不會被調用

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:linksClickableandroid:clickableandroid: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

你有可能會改寫文本視圖父視圖一個onClick監聽器?您也可以嘗試不使用匿名內部類作爲您的偵聽器,而是使用下面的view.OnClickListener進行點擊事件。

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