У меня есть блок текста, поступающий из веб-службы, и в зависимости от некоторых тегов, которые я предопределил, я хочу стилизовать текст перед установкой его в TextView.Для жирного, курсива и подчеркивания я смог легко это сделать с помощью команды replaceAll:
PageText = PageText.replaceAll("\\*([a-zA-Z0-9]+)\\*", "<b>$1</b>");
PageText = PageText.replaceAll("=([a-zA-Z0-9]+)=", "<i>$1</i>");
PageText = PageText.replaceAll("_([a-zA-Z0-9]+)_", "<u>$1</u>");
txtPage.setText(Html.fromHtml(PageText), TextView.BufferType.SPANNABLE);
Итак, чтобы выделить слово жирным шрифтом, окружите его *, курсивом - _.
Но для зачеркивания Html.fromHtml не поддерживает тег «strike», поэтому его нельзя сделать таким же образом.Я видел примеры использования Spannable для установки стиля в одном разделе текста, но это требует позиционных чисел.Итак, я думаю, я мог бы пройтись по тексту, выполнив поиск - (тег для представления удара), затем выполнив поиск следующего, охватывая текст между ними и повторив для всех таких строк.В конечном итоге это будет 10 строк зацикливания кода, а не 1 для остальных, поэтому мне интересно, есть ли более элегантное решение.