我試圖改變這些字符* *
之間的字符串顏色,但是我的代碼出了問題。該應用程序已完成。 每一個「諾塔」包含"*"
(即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
如果你找到兩顆星的索引,那麼當你正在尋找字符串'「* *」' –