方法如下:
/**
* 字符串截取变红
*
* @param otherString 你要变色的字符,可为null
* @param changeString 你要变色的字符
* @param allString 整个字符串
* @param number 要变色的控件
*/
public void stringChangeColor(CheckBox number, String allString, String changeString, String otherString) {
int fstart = allString.indexOf(changeString);
int fend = fstart + changeString.length();
SpannableStringBuilder style = new SpannableStringBuilder(allString);
if (!"".equals(otherString) && otherString != null) {
int bstart = allString.indexOf(otherString);
int bend = bstart + otherString.length();
style.setSpan(new ForegroundColorSpan(Color.parseColor("#586E98")), bstart, bend, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
}
style.setSpan(new ForegroundColorSpan(Color.parseColor("#586E98")), fstart, fend, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
number.setText(style);
}
直接调用即可:
stringChangeColor(registerClause, getString(R.string.reapal_protocol), "《扬宏豕慧用户协议》、《法律声明》、《隐私协议》", null);