Использую spannable для реализации сносок в приложении:
private SpannableStringBuilder addClickablePart(String str) {
SpannableStringBuilder ssb = new SpannableStringBuilder(str);
int idx1 = str.indexOf("[");
int idx2 = 0;
while (idx1 != -1) {
idx2 = str.indexOf("]", idx1) + 1;
String clickString = str.substring(idx1, idx2);
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
}
}, idx1, idx2, 0);
idx1 = str.indexOf("[", idx2);
}
return ssb;
}
pageContent.setMovementMethod(LinkMovementMethod.getInstance());
pageContent.setText(addClickablePart(pageContentStr), TextView.BufferType.SPANNABLE);
Если в метод setText я добавлю Html.fromHtml(), то spannable перестает работать, есть ли какие-нибудь пути совмещения эти двух, чтобы работали оба?
Сначала примените Html.fromHtml и делайте кликабельными ссылки уже с результатом этого метода:
private SpannableStringBuilder addClickablePart(String str) {
CharSequence sequence = Html.fromHtml(str);
SpannableStringBuilder ssb = new SpannableStringBuilder(sequence);
int idx1 = str.indexOf("[");
int idx2 = 0;
while (idx1 != -1) {
idx2 = str.indexOf("]", idx1) + 1;
String clickString = str.substring(idx1, idx2);
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
}
}, idx1, idx2, 0);
idx1 = str.indexOf("[", idx2);
}
return ssb;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости