指定文字变色(隐私政策、用户协议点击跳转)

该文章展示了如何在Android应用中使用Java代码使文本中的特定部分变色并添加点击事件。通过创建ClickabeSpan对象,可以改变文字颜色,去除下划线,并在用户点击时触发特定行为,如跳转到其他Activity。
摘要由CSDN通过智能技术生成

指定文字变色

1、java代码

//指定文字变色
        val spannable = SpannableStringBuilder(tv_privacy_context.text.toString())
        val userClickableSpan = object : ClickableSpan() {
            override fun onClick(widget: View) {
                //跳转
//                var intent = Intent()
//                intent.setClass(this@VipDetailsMainActivity, UserMainActivity().javaClass)
//                startActivity(intent)
            }

            override fun updateDrawState(ds: TextPaint) {
                super.updateDrawState(ds)
                //去掉下划线
                ds.isUnderlineText = false
                ds.color = getColor(R.color.tab_text_color_selected)
            }
        }

        val privacyClickableSpan = object : ClickableSpan() {
            override fun onClick(widget: View) {
//                var intent = Intent()
//                intent.setClass(this@VipDetailsMainActivity, PrivacyMainActivity().javaClass)
//                startActivity(intent)
            }

            override fun updateDrawState(ds: TextPaint) {
                super.updateDrawState(ds)
                ds.isUnderlineText = false
                ds.color = getColor(R.color.tab_text_color_selected)
            }
        }

        spannable.setSpan(userClickableSpan, 6, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
        spannable.setSpan(privacyClickableSpan, 14, 20, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
        tv_privacy_context.text = spannable
        tv_privacy_context.movementMethod = LinkMovementMethod.getInstance()
        

2、xml

<androidx.appcompat.widget.AppCompatTextView
                android:id="@+id/tv_privacy_context"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="5dp"
                android:text="开通前请阅读《服务协议》以及《隐私政策》" />

来吧展示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值