关于一行文字多个点击事件

在做底部说明提示时,需要一行文字有多个点击事件,并且支持换行。

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);
spannableString.setSpan(new MyClickText(this, agreement2), 20, 25, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tvAgreements.setMovementMethod(LinkMovementMethod.getInstance());//不设置 没有点击事件tvAgreements.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明tvAgreements.setText(spannableString);
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);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值