TextView 全体をクリック可能にしたい場合は、他の人が言及したように onClickListener を追加するだけです。
Span
ただし、印刷する各 ID を個別にクリック可能にしたい場合 (つまり、それぞれ別の場所に移動したい場合)、独自のクラスを作成して追加する必要があります。
実装例を次に示します。まず、から拡張して独自のスパンを定義します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をクリックして個別に移動できるようになります