2016-05-03 47 views
1

我有一個字符串名稱「classe」。它包含許多單詞和短語。但是當字符串包含單詞"idiom"時,我想更改顏色。我以編程的方式做到了這一點,但它改變了所有字符串「classe」的顏色。我只是想改變「成語」(詞的一部分,而不是整個詞組)的顏色。我怎樣才能做到這一點編程?Android更改字符串的顏色部分

if (classe.contains("idiom")) { 

     txtclasse.setTextColor(getResources().getColor(R.color.orange)); 
    } 
+0

[一個「的EditText」插件內的文本的顏色變化部分(的可能的複製http://stackoverflow.com/questions/6524976/change-part-of-text-color-within-an-edittext -widget) – jobbert

+0

使用ForegroundColorSpan。請參閱此處:http://stackoverflow.com/a/3514435/4586742 – Bob

回答

3

使用ForegroundColorSpan。

if(classe != null && classe.contains(「idiom」)) 
{ 
    Spannable spannable = new SpannableString(classe); 
    spannable.setSpan(new ForegroundColorSpan(Color.BLUE), classe.indexOf(「idiom」), classe.indexOf(「idiom」) + 「idiom」.length(),  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    txtclasse.setText(spannable); 
} 
1

您可以使用HTML來解決它。

origString = txtclasse.getText().toString(); 
origString = origString.replaceAll("idiom","<font color='red'>idiom</font>"); 

txtclasse.setText(Html.fromHtml(origString)); 
+0

它沒有工作!整個字符串短語在屏幕上是空的:( –