android textview 給指定字改變顏色和新增點選事件
使用 SpannableString :
TextView textview=new TextView(context);
String str="指定字改變顏色和新增點選事件";
SpannableString spannableString=new SpannableString(str);
// Spanned.SPAN_INCLUSIVE_EXCLUSIVE 從起始下標到終了下標,包括起始下標
// Spanned.SPAN_INCLUSIVE_INCLUSIVE 從起始下標到終了下標,同時包括起始下標和終了下標
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 從起始下標到終了下標,但都不包括起始下標和終了下標
// Spanned.SPAN_EXCLUSIVE_INCLUSIVE 從起始下標到終了下標,包括終了下標
方法一://設定顏色
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#999999")),start,end,Spanned.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
方法二://或者繼承ClickableSpan 重寫updateDrawState()方法
public class NoLineCllikcSpan extends ClickableSpan {
public NoLineCllikcSpan() {
super();
}
@Override
public void updateDrawState(TextPaint ds) {
/**設定顏色**/
ds.setColor(ds.linkColor);
/**設定無下劃線**/
ds.setUnderlineText(false);
}
@Override
public void onClick(View widget) {
}
}
spannableString.setSpan(new NoLineCllikcSpan() {
@Override
public void onClick(View widget) {
/** 指定字的點選事件 */
}
}, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(spannableString);
textview.setMovementMethod(LinkMovementMethod.getInstance());//想要實現指定文字的點選事件,需要新增該方法