1、MyClickSpan .java文件
public class MyClickSpan extends ClickableSpan {
private int mHighLightColor = Color.RED;
private boolean mUnderLine = false;
private View.OnClickListener mClickListener;
public MyClickSpan(View.OnClickListener listener)
{
this.mClickListener = listener;
}
public MyClickSpan(int color, boolean underline, View.OnClickListener listener)
{
this.mHighLightColor = color;
this.mUnderLine = underline;
this.mClickListener = listener;
}
@Override
public void onClick(View widget)
{
if (mClickListener != null)
mClickListener.onClick(widget);
}
@Override
public void updateDrawState(TextPaint ds)
{
ds.setColor(mHighLightColor);
ds.setUnderlineText(mUnderLine);
}
}
2、使用方法
public static void setTextHighLightWithClick(TextView tv, String text, String keyWord, View.OnClickListener listener)
{
tv.setClickable(true);
tv.setHighlightColor(Color.TRANSPARENT);
tv.setMovementMethod(LinkMovementMethod.getInstance());
SpannableString s = new SpannableString(text);
Pattern p = Pattern.compile(keyWord);
Matcher m = p.matcher(s);
while (m.find())
{
int start = m.start();
int end = m.end();
s.setSpan(new MyClickSpan(listener), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tv.setText(s);
}
setTextHighLightWithClick(tvRotate, "若照片显示为反转,请点击此处\"旋转\",再进行提交", "\"旋转\"", new View.OnClickListener() {
@Override
public void onClick(View view) {
// to do
}
});
网友评论