У меня есть строка под названием nota. Есть несколько текстов. Я хочу изменить цвет конкретных слов из фразы, которая содержит * * между ними. Пример: Это удивительно *. Слово awesome
должно иметь желтый цвет, а символы * * должны быть удалены (как если бы * было форматированием мини-Markdown). Я пробовал этот код, но он не работал. Мне нужна помощь.Android пытается заменить символ и изменить цвет слова
if(nota.contains("* *")){
//nota = nota.replace("* *","");
Pattern pattern = Pattern.compile("\\*.*\\*");
Matcher matcher = pattern.matcher(nota);
// Check all occurrences
matcher.find();
Spannable spannable = new SpannableString(nota);
spannable.setSpan(
//new ForegroundColorSpan(Color.YELLOW), nota.indexOf("* *"), nota.indexOf("* *") + "* *".length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
new ForegroundColorSpan(Color.YELLOW), matcher.start() + 1 , matcher.end() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txtnota.setText(spannable);
}
Я попробовал ваш код. Я выполнил ваши шаги и поставил '* awesome *', но ничего не изменилось. Астерики видны, и желтый цвет не вставлен для удивительного. –