不会调用 TextView 的 OnClickListener
OnClickListener for TextView does not get called
我的 Android 应用程序中有几个 文本 links,它们是 电子邮件地址 或 web links。我使用以下代码片段来设置它们(网络示例 link):
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
从未被调用。
无法从您粘贴的代码片段中判断出来。请显示更多代码。例如,您的 textView 声明是什么样的?
删除此代码
textView.setMovementMethod(LinkMovementMethod.getInstance());
并手动添加下面一个link
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);
}
});
您的父视图上是否有一个 onClick 侦听器可能会覆盖文本视图?此外,您可能想尝试不使用匿名内部 class 作为您的侦听器,而是使用下面的 view.OnClickListener 来处理点击事件。
myActivity extends Activity implements View.OnClickListener {
@Override
publiv void onClick(View v) {
if(V.getId() == textViewId) {
// do work
}
}
}
我的 Android 应用程序中有几个 文本 links,它们是 电子邮件地址 或 web links。我使用以下代码片段来设置它们(网络示例 link):
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
从未被调用。
无法从您粘贴的代码片段中判断出来。请显示更多代码。例如,您的 textView 声明是什么样的?
删除此代码
textView.setMovementMethod(LinkMovementMethod.getInstance());
并手动添加下面一个link
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);
}
});
您的父视图上是否有一个 onClick 侦听器可能会覆盖文本视图?此外,您可能想尝试不使用匿名内部 class 作为您的侦听器,而是使用下面的 view.OnClickListener 来处理点击事件。
myActivity extends Activity implements View.OnClickListener {
@Override
publiv void onClick(View v) {
if(V.getId() == textViewId) {
// do work
}
}
}