2011-12-15 25 views
6

我正在创建一个应用程序,在该应用程序中我正在文本视图中搜索关键词。当我在编辑文本中输入任何单词时,我有一个编辑文本,一个文本视图和一个按钮,点击按钮,它给了我在整个文本文件中的该行的单词的位置和位置......我已经附加了文本文件的文本视图中包含...现在我的问题是我可以突出显示所有文字由编辑文本输入的视图。如果我能比请告诉我如何做到这一点..如果任何人有想法呢?文本视图中的Higlight特定字

回答

7

你也可以

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

哪里entireString是字符串中宽:用Spannable,因为你知道这个词的位置,这是方便做这个单词要突出显示存在,color是您希望高亮文本具有的颜色,start是单词的位置,而end是单词结束的位置(start + word.length())。

的SpannableString资源可以被应用到你的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); 
} 
+0

仍然不清楚你可以更新我的代码吗?这里是我的代码http://pastebin.com/BCcHWAgS – Aamirkhan 2011-12-15 10:37:15

3

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

String styledText = "This is <font color='red'>simple</font>."; 
textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE); 
0

使用Spannable设置在spannable文本可以setSpan通过它可以突出显示文本你想

相关问题