是否可以在文本 View 的某些部分添加onclick?例如我的代码是这样的,
String content = "Hello this a test.. For more details contact @Peter";
someTextView.setText(content);
我想为“@Peter”添加一个onClick事件。那可能吗?
TIA。
最佳答案
简单的: -)
SpannableString link = makeLinkSpan("@Peter", new View.OnClickListener() {
@Override
public void onClick(View v) {
// Peforme Click
}
});
String content = "Hello this a test.. For more details contact";
someTextView.setText(content);
someTextView.append(link);
和
makeLinkSpan()
方法是private SpannableString makeLinkSpan(CharSequence text, View.OnClickListener listener) {
SpannableString link = new SpannableString(text);
link.setSpan(new ClickableString(listener), 0, text.length(),
SpannableString.SPAN_INCLUSIVE_EXCLUSIVE);
return link;
}
ClickableString
类别private static class ClickableString extends ClickableSpan {
private View.OnClickListener mListener;
public ClickableString(View.OnClickListener listener) {
mListener = listener;
}
@Override
public void onClick(View v) {
mListener.onClick(v);
}
}