У меня есть TextView, который будет содержать стилизованную многострочную строку. Этот текст генерируется построчно, так как данные берутся из разных источников по крупицам. Когда я беру каждое поле, я добавляю заголовок Bold в TextView на новой строке, затем я добавляю данные для этого поля курсивом на новой строке.
Пример форматирования:
Срок исполнения
22 июля 2010 г.
Курс
CSC 350
Я мог бы установить стиль так:
Spannable str = (Spannable) textview.getText();
str.setSpan(new StyleSpan(android.graphics.Typeface.Bold), 0, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new StyleSpan(android.graphics.Typeface.Italic), 8, 21, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new StyleSpan(android.graphics.Typeface.Bold), 21, 27, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(new StyleSpan(android.graphics.Typeface.Italic), 27, 33, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Но для этого необходимо знать длину каждого раздела текста во время выполнения, что просто неуправляемо, поскольку в текстовое представление можно добавить переменное количество полей данных.
Как добавить стиль, когда я добавляю каждый фрагмент текста, а не после того, как весь текст был добавлен?