1.在Android開發(fā)中,經(jīng)常會用到一行字,要顯示不同的顏色,如果用多個TextView的話,過于浪費空間,浪費重繪的時間,所以通常就用SpannableString來解決這個問題
2.代碼如下:
SpannableStringBuilder positionName = new SpannableStringBuilder(textStr);//傳入你的字符串
SpannableString spannableString = new SpannableString(text);
spannableString.setSpan(new ClickableSpan() {
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.parseColor("#999999"));//設(shè)置需要的顏色
ds.setUnderlineText(false);
}
@Override
public void onClick(View widget) {
//設(shè)置這段文字的點擊事件
}
}, 0,3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(positionName.append(spannableString));//特別說明一點,在setText()方法時,傳入的值必須是SpannableStringBuilder對象,不能用positionName+spannableString的方式拼接字符串,必須是positionName.append(spannableString),否則沒有效果