Что вы можете сделать, это использовать функцию Html.fromHtml()
.
У вас останется объект типа Spanned
. Вы можете использовать отдельные промежутки в местах для обработки тегов?
Пример для редактирования тегов.
Ситуации: текст с тегами html, которые работают с использованием html.fromhtml. Но иногда URL-адреса являются относительными (использование «/file.html» вместо «http://domain.com/file.html")», и поэтому его нельзя использовать. Отправка функции spannable в мою функцию ниже находит все диапазоны для URL и добавляет домен. Вы можете использовать что-то еще для ваших конкретных тегов:
protected Spanned correctLinkPaths (Spanned spantext) {
Object[] spans = spantext.getSpans(0, spantext.length(), Object.class);
for (Object span : spans) {
int start = spantext.getSpanStart(span);
int end = spantext.getSpanEnd(span);
int flags = spantext.getSpanFlags(span);
if (span instanceof URLSpan) {
URLSpan urlSpan = (URLSpan) span;
if (!urlSpan.getURL().startsWith("http")) {
if (urlSpan.getURL().startsWith("/")) {
urlSpan = new URLSpan("http://www.domain.com" + urlSpan.getURL());
} else {
urlSpan = new URLSpan("http://www.domain.com/" + urlSpan.getURL());
}
}
((Spannable) spantext).removeSpan(span);
((Spannable) spantext).setSpan(urlSpan, start, end, flags);
}
}
return spantext;
}
Я не уверен, что это самый эффективный способ сделать это, это было одно из моих первых подключений к spannables, но по крайней мере он показывает некоторые трюки, которые вы можете сделать с spannables: D