spannableString使用方法,以及设置setSpan后点击无效解决原因

'''

//使用方法 TextView 需要 设置movementMethod 不然点击无效
v.privacy_tips.movementMethod = LinkMovementMethod.getInstance()
v.privacy_tips.text = getClickableSpan()

private fun getClickableSpan(): SpannableString? {
    val txt = "欢迎使用"+PackageUtil.getAppName(this)+"!我们非常重视您的个人信息和隐私保护。在使用此应用程序之前,请仔细阅读"+PackageUtil.getAppName(this)+"隐私政策。我们将严格按照您同意的条款使用您的个人信息,以便为您提供 更好的服务。\n" +
            "       如果您同意本政策,请点击“同意”并开始使用此应用程序。"

    val spannableString = SpannableString(txt)

    val span = object : ClickableSpan() {
        override fun onClick(widget: View?) {
            var intent: Intent = WebShellActivity.newIntent(this@SplashActivity, Constants.PRIVACY_URL);
            startActivity(intent)
        }
      //重写该方法去掉下划线
        override fun updateDrawState(@NonNull ds: TextPaint) {
            ds.isUnderlineText = false
        }
    }


    var start = txt.indexOf("隐私政策")
    var end = txt.indexOf("隐私政策") + 4

    //设置文字的点击事件
    spannableString.setSpan(span, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
    //设置文字的前景色
    spannableString.setSpan(ForegroundColorSpan(Color.BLUE), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE
    )
    return spannableString
}

'''

你可能感兴趣的:(spannableString使用方法,以及设置setSpan后点击无效解决原因)