0

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

            }
}

在此处输入图像描述

4

1 回答 1

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);
于 2013-01-08T07:06:29.257 回答