您的位置:首页 > 其它

TextView设置不同的点击事件与不同的颜色(kotlin版)

2018-03-06 15:07 1096 查看
设置不同的点击事件

class TextClick(val content: String, val context: Context) : ClickableSpan() {
override fun onClick(widget: View?) {
when (content) {
"《委托扣款协议》" -> {
"《委托扣款协议》被点击了".toast()
}
"《快捷支付服务和相关协议》" -> {
"《快捷支付服务和相关协议》".toast()
}
}
}

override fun updateDrawState(ds: TextPaint?) {
super.updateDrawState(ds)
//需要设置,否则默认为蓝色  也可以设置字体颜色
ds?.setColor(context.getResources().getColor(R.color.color_333));
//去下划线
ds?.isUnderlineText = false
}
}


使用

val arg1 = "《委托扣款协议》"
val arg2 = "《快捷支付服务和相关协议》"
val spanArg1 = SpannableString(arg1)
val spanArg2 = SpannableString(arg2)
val clickttt = TextClick(arg1, this)
val clicksss = TextClick(arg2, this)
spanArg1.setSpan(clickttt, 0, arg1.length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
spanArg2.setSpan(clicksss, 0, arg2.length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
tvArgeement.text = "同意"
tvArgeement.append(spanArg1)
tvArgeement.append("和")
tvArgeement.append(spanArg2)
tvArgeement.movementMethod = LinkMovementMethod.getInstance()


flag属性

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)

Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)

Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)

Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息