我想在编辑文本中突出显示名称,
所以我有一个包含这些单词的字符串数组。
我创建了以下代码,如果在单词数组中找到它,则突出显示在edittext中写入的单词:
final Handler handler = new Handler();
final Runnable r = new Runnable()
{
public void run()
{
String allText = mac.getText().toString();
for(int i=0;i<allText.length();i++){
for(int j=0;j<darkBlue.length;j++){
if(allText.indexOf(darkBlue[j])!=-1){
Spannable WordtoSpan = new SpannableString(allText);
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), allText.indexOf(darkBlue[j]), allText.indexOf(darkBlue[j])+darkBlue[j].length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mac.setText(WordtoSpan);
mac.setSelection(mac.getText().length());//put the cursor at the end of the text.
}
}
}
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
问题是,UI 每隔一秒就会再次渲染,因此不让我与键盘交互,而且它的行为都很缓慢。
您是否知道更好的替代方法,用于从字符串数组中突出显示 android 的 textedit 中的几个单词?