用指定颜色显示指定文字。
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"));