在做底部说明提示时,需要一行文字有多个点击事件,并且支持换行。
TextView tvAgreements = new TextView(context)
StringBuilder sb = new StringBuilder();
sb.append("点击去付款表示已阅读并同意");sb.append("某某某须知");sb.append("和叉叉叉协议");SpannableString spannableString = new SpannableString(sb.toString());
// agreement1 agreement2表示需要提示的内容spannableString.setSpan(new MyClickText(this, agreement1), 13, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);tvAgreements.setMovementMethod(LinkMovementMethod.getInstance());//不设置 没有点击事件tvAgreements.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明tvAgreements.setText(spannableString);spannableString.setSpan(new MyClickText(this, agreement2), 20, 25, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
class MyClickText extends ClickableSpan { private Context context; private String agreementObj; public MyClickText(Context context, String agreementObj) { this.context = context; this.agreementObj = agreementObj; } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds);
//设置文本的颜色 ds.setColor(getResources().getColor(R.color.main_primary)); //超链接形式的下划线,false 表示不显示下划线,true表示显示下划线 ds.setUnderlineText(false); } @Override public void onClick(View widget) {
// 弹层显示提示内容 showAgreementInfo(agreementObj); } }