我的Android应用程序中有几个文本链接,它们是电子邮件地址或网络链接。我使用以下代码片段进行设置(Web链接示例):
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 :(得分: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);
}
});
答案 1 :(得分:0)
无法从您粘贴的代码片段中分辨出来。请显示更多代码。例如,你的textView声明是什么样的?
答案 2 :(得分:0)
您是否在父视图上有一个可能覆盖文本视图的onClick侦听器?您也可以尝试不使用匿名内部类作为侦听器,而是使用下面的view.OnClickListener进行单击事件。
myActivity extends Activity implements View.OnClickListener {
@Override
publiv void onClick(View v) {
if(V.getId() == textViewId) {
// do work
}
}
}