ITEEDU

Android高亮显示关键字

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

例子

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"));