如果你想让整个 TextView 可点击,那么你可以像其他人提到的那样添加一个 onClickListener 。
然而,如果你想让你打印的每个 ID 都可以单独点击(即每个 ID 都去别的地方),你必须创建添加你自己的Span
类。
这是一个示例实现。首先通过扩展定义您自己的跨度ClickableSpan
:
static class MyClickableSpan extends ClickableSpan {
OnClickListener mListener;
public MyClickableSpan(OnClickListener listener) {
mListener = listener;
}
@Override
public void onClick(View widget) {
mListener.onClick(widget);
}
}
接下来,您要为SpannableString
打印的每个 id 创建一个:
for (Contact cn : contacts) {
String id = cn.getID().toString();
SpannableString mySpan = new SpannableString(id+"\n")
mySpan.setSpan(new MyClickableSpan(new OnClickListener() {
public void onClick(View v) {
//Do whatever you want when clicked here! <----
}
}), 0, id.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
setNote.append(mySpan);
}
LinkMovementMethod
最后,要启用点击,您需要添加TextView
如下:
// Put this at the end after finishing your for-loop
setNote.setMovementMethod(LinkMovementMethod.getInstance());
Activity
这将允许您使每个 ID 都可点击,如果这是您想要的,每个 ID 都会转到单独的位置