TextView部分文字上色,并为其添加监听

【需求】如下图,点击红色字体,实现逻辑跳转?

TextView部分文字上色,并为其添加监听_第1张图片
效果图.png

【实现】
(1)Spannable 修改字体样式
(2)添加ClickableSpan监听

【核心代码】

   String str  =  "有天我睡醒看到我的身边没有你";  // 哈哈这是《病变》其中一句歌词啦 
    SpannableString span = new SpannableString(str);
    span.setSpan(new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            //  跳转逻辑;
          Toast.makeText(SpannableActivity.this,"我被点击了",
                     Toast.LENGTH_SHORT).show();

        }

        @RequiresApi(api = Build.VERSION_CODES.M)
        @Override
        public void updateDrawState(TextPaint ds) {
            // super.updateDrawState(ds);
            //去掉下划线
            ds.setUnderlineText(true);
            //去掉点击背景色
             // ds.bgColor = getColor(R.color.colorWhite);
             // 距离文本基线的距离
             // ds.baselineShift = 20;
        }
        }, 7, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    span.setSpan(new ForegroundColorSpan(getColor(R.color.colorAccent)),7, str.length(),

            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    mTvContent.setText(span);
    mTvContent.setMovementMethod(LinkMovementMethod.getInstance());

【xml 布局文件】




    


【其他友情链接】http://blog.csdn.net/u010231625/article/details/70483615

你可能感兴趣的:(TextView部分文字上色,并为其添加监听)