我正在使用android 2.2。 我想根据我的适配器包含格式化多个单词。 像
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1);
adapter.add("aaaa");
adapter.add("abaa");
adapter.add("acaa");
adapter.add("adaa");
adapter.add("aaba");
adapter.add("aaca");
adapter.add("aaba");
adapter.add("aaae");
我有一个EditText视图,我在其中编写文本,但如果在文本更改时,我发现任何与我想要突出显示的适配器值匹配的单词。
请参考以下代码更改文字但未获得完美输出。
@Override
public void afterTextChanged(Editable s) {
CharSequence cs;
// TODO Auto-generated method stub
str = myAutoComplete.getText().toString();
for(int i = 0; i < adapter.getCount(); i++)
{
String s2 = adapter.getItem(i).toString().toLowerCase();
if (str.contains(s2) == true)
{ Log.e("s2",s2);
str = str.replaceAll(s2, "<font color='red'>"+s2+"</font>");
Log.e("str",str);
myAutoComplete.setText(Html.fromHtml(str), TextView.BufferType.SPANNABLE);
}
}
}
答案 0 :(得分:1)
试试这个
SpannableStringBuilder ssb = new SpannableStringBuilder(eT
.getText().toString());
ForegroundColorSpan fcs = new ForegroundColorSpan(Color.GREEN);
// 5,10 specifies selected characters
ssb.setSpan(fcs, 5, 10, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
eT.setText(ssb);