用指定颜色显示指定文字。

public class Androidtest2Activity extends Activity {
/** Called when the activity is first created. */
private EditText et;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et = (EditText) this.findViewById(R.id.editText1);
et.setText("HelloWorld");
this.highlight(3, 7);
}
public void highlight(int start, int end) {
SpannableStringBuilder spannable = new SpannableStringBuilder(getText()
.toString());
ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);
spannable.setSpan(span, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
setText(spannable);
}
private Editable getText() {
return et.getText();
}
private void setText(SpannableStringBuilder spannalbe) {
et.setText(spannalbe);
}
}
另一种方法:
将字符串中的key替换成html标签,用Html.fromHtml()处理。
private Spanned setKeyColor(String key,String s,String color){
if(Utils.isEmpty(s))return null;
if(Utils.isEmpty(key))return Html.fromHtml(s);
String colorKey="<font color=\""+color+"\">"+key+"</font>";
return Html.fromHtml(s.replace(key, colorKey));
}
直接设置后key就会显示成指定颜色的文字。
editor.setText(setKeyColor(key,user.screenName,"red"));