天天看点

Android 通过SpannableString来设置TextView指定部分字符串的文字颜色,下划线和点击事件

Android 通过SpannableString来设置TextView指定部分字符串的文字颜色,下划线和点击事件

废话不多说,直接上代码

private SpannableString getClickableSpan() {
	String provacyStr1 = "我已阅读并同意相关";
	String provacyStr2 = "隐私政策和用户协议";
    String privacyPolicyMsg = provacyStr1  + provacyStr2 ;
    int start = privacyPolicyMsg.indexOf(provacyStr2);
    int end = privacyPolicyMsg.length();

    SpannableString spannableString = new SpannableString(privacyPolicyMsg);
    //设置下划线文字
    spannableString.setSpan(new UnderlineSpan(), start, end,  Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
   //设置文字的单击事件
    spannableString.setSpan(new ClickableSpan() {
       @Override
       public void onClick(View widget) {
           // 前往查看隐私政策与用户协议
       }
    },start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
   //设置文字的前景色
    spannableString.setSpan(new ForegroundColorSpan(Color.BLUE), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return spannableString;
}

public void setPrivacyText(){
	// 设置文字
	termsPrivacy.setText(getClickableSpan());
	// 添加这一行之后,指定区域文字点击事件才会生效
    termsPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
}