文本视图中的特殊词

我正在创建一个应用程序,我在其中搜索文本视图中的特定单词。我有一个编辑文本,一个文本视图和一个按钮,当我在编辑文本中输入任何单词并单击按钮时,它给出了行位置和整个文本文件中该行的单词位置…我在文本视图中附加了文本文件…现在我的问题是我可以突出显示编辑文本输入的文本视图中的所有单词。如果我可以告诉我该怎么做..如果有人有这个想法吗?

您也可以使用Spannable来完成它,这很方便,因为您知道单词的位置:

SpannableString res = new SpannableString(entireString); res.setSpan(new ForegroundColorSpan(color), start, end, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); 

其中, entireString是要突出显示的单词所在的字符串, color是您希望hightlighted文本具有的颜色, start是单词的位置, end是单词结束的位置(start + word.length())。

然后,SpannableString res可以像常规字符串一样应用于textview:

 textView.setText(res); 

注意:如果希望文本的背景颜色而不是文本本身,请使用BackgroundColorSpan而不是ForegroundColorSpan

编辑:在你的情况下它会是这样的(当你读完整个文本时,你将不得不保存linecount和indexfound的值):

 for(String test="", int currentLine=0; test!=null; test=br2.readLine(), currentLine++){ if(currentLine==linecount){ SpannableString res = new SpannableString(test); res.setSpan(new ForegroundColorSpan(0xFFFF0000), indexfound, indexfound+textword.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); } tv.append("\n"+" "+test); } 

是您可以通过编写HTML来突出显示文本视图的某些部分

 String styledText = "This is simple."; textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE); 

使用Spannable在spannable中设置文本,你可以使用setSpan来突出显示所需的文本

 string =" hello " textview.setText(Html.fromHtml(string)) 

http://developer.android.com/reference/android/text/Html.html