Давайте представим себе, что мне нужно создать регистратор на Android, который отображает все в TextView.Добавить HTML-содержимое в TextView
Поэтому я создаю многострочный TextView. Тогда первоначально есть метод для добавления простого текста в TextView:
TextView output; // Initialized in onCreate
public static void log(final String text) { // Method is called always when Log.log is called
output.append(text + "\n");
}
Это работает как шарм, но я хочу, чтобы добавить красный цвет текста (или фон текста), когда журнал возвращает некоторую ненужную информацию (например, HTTP 500) , Так я обновил метод и использовать некоторые HTML:
public static void log(final String text) {
String newText = output.getText().toString();
if (text.contains("500")) {
newText += "<font color='#FF0000'><b>" + text + "</b></font><br />";
} else {
newText += text + "<br />";
}
output.setText(Html.fromHtml(newText), TextView.BufferType.SPANNABLE);
}
Но это всегда форматирует только текущий «текст» и все до этого (output.getText()) были не отформатирован. Похоже, TextView не сохраняет текст с тегами HTML и просто оформляется сразу.
Я пытался что-то вроде:
spannableString.setSpan(new BackgroundColorSpan(color), 0,
text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
output.setText(spannableString, TextView.BufferType.SPANNABLE);
Что сделал цветной фон, но только текущего текста. Я хотел бы иметь выход, как белые линии, и когда около 500 затем показывают несколько красных линий (так что это динамический).
Любые идеи?