2011-12-15 27 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通過它可以突出顯示文本你想

相關問題