我试图改变这些字符* *
之间的字符串颜色,但是我的代码出了问题。该应用程序已完成。 每一个“诺塔”包含"*"
(即This is * good *
)应该改变字“好”的其余部分的颜色和擦除"*"
字符Android:试图改变字符串的颜色
if(nota != null){
if(nota.contains("* *")){
nota = nota.replace("* *","");
Spannable spannable = new SpannableString(nota);
spannable.setSpan(new ForegroundColorSpan(Color.YELLOW), nota.indexOf("* *"), nota.indexOf("* *") + "* *".length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txtnota.setText(spannable);
}
}
UPDATE:
我试过这个代码,但它是部分着色的话(而不是特定的词,我想):
if(nota != null){
int firstIndex = nota.indexOf("*");
if (firstIndex >= 0) {
nota = nota.replaceFirst("[*]{1}", "");
int secIndex = nota.indexOf("*");
if (secIndex >= 0) {
nota = nota.replaceFirst("[*]{1}", "");
Spannable spannable = new SpannableString("➥ "+nota);
spannable.setSpan(new ForegroundColorSpan(Color.YELLOW), firstIndex, secIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD_ITALIC), firstIndex, secIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txtnota.setText(spannable);
}
}
}
您是否在logcat中发生异常? – RominaV
如果你找到两颗星的索引,那么当你正在寻找字符串'“* *”' –