2014-04-13 56 views
0

我已經有一個文本文件,並在文件中,文字是排隊像線...如何更改列表中特定詞的顏色?

蘋果是甜的。

汽車的顏色是紅色的。

天空是藍色的.. 我在像汽車或蘋果文件serching字 我讀,並使用下面的代碼 {

私人無效initializeData(){

listenglish = populateFromFile("eng_translation.txt"); 


@SuppressLint("DefaultLocale") 
private List<String> populateFromFile(String fName) { 

    // ArrayList<String> result = new ArrayList<String>(); 

    try { 
     InputStreamReader reader = new InputStreamReader(getAssets().open(
       fName), "UTF-8"); 
     BufferedReader buffreader = new BufferedReader(reader); 

     if (reader != null) { 
      String line; 
      while ((line = buffreader.readLine()) != null) { 
       //lstTemp.add(line); 
       if (line.toLowerCase().contains(word.toLowerCase())){ 
        listenglish.add(line); 
        count++; 
       } 
      } 
      line = null; 
      System.gc(); 
      buffreader.close(); 
      reader.close(); 
     } 


    } catch (Exception e) { 
     System.out.println(e); 

    } 
    return listenglish; 

} 
文件搜索

}

現在我想的是,我在文件DISPLY與不同的充顏色列表我該怎麼辦查的單詞本

+0

[在一個TextView一個字的更改文本顏色(HTTP的可能重複:// stackoverflow.com/questions/7221930/change-text-color-of-one-word-in-a-textview) –

+0

@BobMalooga它需要兩個字符串,然後改變第二個字符串的顏色,在這裏我處理文本行和在行中只改變該行中一個單詞的顏色,我認爲它不是一樣的.... – user3271822

+0

嗯,它實際上是一樣的:你想在另一個字符串中搜索一個字符串。如果你發現它,你想改變這個單詞的顏色(比如用「」+ yourWord +「」)替換yourWord,然後使用HTML.fromHTML在TextView中設置文本,對? –

回答

0

你不能在純String對象上做這件事。這必須在Adapter的getView中處理。做這樣的事情的方法可能如下:

public void setColorForWordInTextView(int color, String word, TextView tv) { 
     String str = tv.getText().toString(); 
     Spannable span = new SpannableString(tv.getText()); 

     span.setSpan(new ForegroundColorSpan(color), str.indexOf(word), str.indexOf(word) + word.length(), 
       Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     tv.setText(span); 
    } 

然後你就可以與使用它:

setColorForWordInTextView(Color.RED, word, tv); 
+0

我不是文本視圖我顯示在列表視圖,所以如何做到這一點列表顯示 – user3271822