文字列の色を* *
に変更しようとしていますが、コードで問題が発生しました。アプリケーションは終了です。 すべての「注意」"*"
が含まれていること(すなわちThis is * good *
)「良い」という言葉の残りの部分の色を変更し、UPDATE "*"
文字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);
}
}
を消去する必要があります。私はこのコードを試してみましたが、それは部分的である
言葉(私は望んでいない特定の単語)着色:私が見ることができるように
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
2つの星のインデックスが見つかった場合、文字通り文字列 '' * * "'を探しているときに2つの星の間の単語は見つかりません –