Android TextView使用SpannableString实现部分文字点击

    SpannableString msp = new SpannableString("登录即同意用户协议");
    ClickableSpan clickableSpan = new ClickableSpan() {
      @Override public void onClick(View textView) {
       // TODO 点击操作
      }

      @Override public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
      }
    };
    msp.setSpan(clickableSpan, 5, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//第2,第3两个参数,因需设置,文字范围包含第2个,但不包含第3个
    msp.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.sdzz_agreement_color)), 5,
        9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置高亮的文字颜色
    textView.setText(msp); //需要设置的TextView
    textView.setMovementMethod(LinkMovementMethod.getInstance());//这个也得设置,不设置点击没效果
  

如果想点击高亮文字,背景色不发生改变,就设置textColorHIghlight的属性值和TextView背景色一致.

你可能感兴趣的:(Android TextView使用SpannableString实现部分文字点击)