美文网首页
TextView SpannableString 使用之实现可点

TextView SpannableString 使用之实现可点

作者: A徐亮波KingA | 来源:发表于2019-08-20 11:32 被阅读0次

    https://www.cnblogs.com/didikee/p/7851260.html

    这是我的 kotlin实现

     val linkWord1 = "<用户协议>"
            val linkWord2 = "<隐私说明>"
            val word = "登录表示同意XXXX${linkWord1}及$linkWord2"
            val spannableStringBuilder = SpannableStringBuilder(word)
            val index1 = word.indexOf(linkWord1)
            val index2 = word.indexOf(linkWord2)
            spannableStringBuilder.setSpan(object : ClickableSpan() {
                override  fun onClick(widget: View) {
                    showXieyiDialog(userXieyiUrl ?: "")
                }
    
                override fun updateDrawState(ds: TextPaint) {
                    super.updateDrawState(ds)
                    ds.setColor(Color.parseColor("#444444"))       //设置文件颜色
                    ds.setUnderlineText(false)      //设置下划线
                }
            }, index1, index1 + linkWord1.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
    
            spannableStringBuilder.setSpan(object : ClickableSpan() {
                override fun onClick(widget: View) {
                    showXieyiDialog(privateXieyiUrl ?: "")
                }
    
                override fun updateDrawState(ds: TextPaint) {
                    super.updateDrawState(ds)
                    ds.setColor(Color.parseColor("#444444"))       //设置文件颜色
                    ds.setUnderlineText(false)      //设置下划线
                }
            }, index2, index2 + linkWord2.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
    
            login_xieyi.setText(spannableStringBuilder)
            login_xieyi.setMovementMethod(LinkMovementMethod.getInstance())
    
    

    相关文章

      网友评论

          本文标题:TextView SpannableString 使用之实现可点

          本文链接:https://www.haomeiwen.com/subject/dwwusctx.html