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());
}