我有一个字符串名称“ classe”。它包含许多单词和短语。但是我想在字符串包含单词"idiom"时更改颜色。我以编程方式完成了此操作,但是它更改了所有字符串“ classe”的颜色。我只想更改“成语”的颜色(单词的一部分,而不是整个短语)。如何以编程方式做到这一点?

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

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

最佳答案

使用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);
}

10-08 16:29