您的位置:首页 > 其它

一个Text,设置不同的颜色,有颜色部分添加点击事件

2017-12-11 22:03 417 查看
要实现如上功能

用到的是  SpannableStringBuilder。通过SpannableStringBuilder设置开始字符位置和结束的字符位置的Span

private void setRepaymenteClickEvent(String str, int startChar, int endChar, TextView textView) {
SpannableStringBuilder builder = new SpannableStringBuilder(str);
builder.setSpan(new RePayExplainClickable(mRePayExplainClickListener,
BankCardInfoActivity.this), startChar, endChar,
Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView.setText(builder);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(ContextCompat.getColor(BankCardInfoActivity.this, R.color.transparent));
}

/**这里的RePayExplainClickable 就是你想要实现的相应的点击的类,
mRePayExplainClickListener就是一个点击接口,通过将mRePayExplainClickListener传入来实现点击

public class RePayExplainClickable extends ClickableSpan {
private final View.OnClickListener mListener;
private Context context;
public RePayExplainClickable<
8ecc
/span>(View.OnClickListener mListener,Context context) {
this.mListener = mListener;
this.context = context;
}

@Override
public void onClick(View widget) {
mListener.onClick(widget);
}

@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(ContextCompat.getColor(context, R.color.mine_repaymentexpalin_blue));
ds.setUnderlineText(false);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐