在textchange上的android EditText视图中格式化单词

时间:2013-01-07 11:43:24

标签: android formatting textchanged

我正在使用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);
                }

            }
}

enter image description here

1 个答案:

答案 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);