SpannableStringBuilder改变TextView中的颜色,附加点击事件

该代码段展示了如何在Android中创建可点击的文本,包括《使用协议》和《隐私政策》。点击事件分别触发WebView加载相应的协议页面,同时设置了文字颜色和去除下划线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private void changeLoginText() {
        String str = (String) getResources().getText(R.string.login_text);//对应完整的文字
        SpannableStringBuilder ssb = new SpannableStringBuilder(str);
        final int start = str.indexOf("《");
        String tt1 = "《使用协议》";
        ssb.setSpan(new ClickableSpan() {

            @Override
            public void onClick(View widget) {
                //用户服务协议点击事件
                WebViewAgreement.skip(mContext,
                        "xxx",
                        "使用协议");
            }

            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                //设置文件颜色
                ds.setColor(Color.parseColor("#257CF8"));
                // 去掉下划线
                ds.setUnderlineText(false);
            }

        }, start, start + tt1.length(), 0);
        //最后一个出现的位置
        final int end = str.lastIndexOf("《");
        String tt2 = "《隐私政策》";
        ssb.setSpan(new ClickableSpan() {

            @Override
            public void onClick(View widget) {
                //隐私协议点击事件
                WebViewAgreement.skip(mContext,
                        "https://xxx.html",
                        "隐私政策");
            }

            @Override
            public void updateDrawState(TextPaint ds) {
                super.updateDrawState(ds);
                //设置文件颜色
                ds.setColor(Color.parseColor("#257CF8"));
                // 去掉下划线
                ds.setUnderlineText(false);
            }
        }, end, end + tt2.length(), 0);


        tvLoginText.setMovementMethod(LinkMovementMethod.getInstance());
        tvLoginText.setText(ssb);

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值