Spannable и Html не работают совместно

279
04 декабря 2017, 15:47

Использую 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 перестает работать, есть ли какие-нибудь пути совмещения эти двух, чтобы работали оба?

Answer 1

Сначала примените 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;
}
READ ALSO
Отступ после футера

Отступ после футера

Перерыл уже весь гугл, как только не пытался баловаться со стилями

254
Мне нужно получить код страницы или скачать html файл автоматически. Проблема - сайт понимает, что запросы автоматические и выдает капчу

Мне нужно получить код страницы или скачать html файл автоматически. Проблема - сайт понимает, что запросы автоматические и выдает капчу

Как можно это обойти? Любыми способамиХочется именно не взломать капчу, а обойти само ее генерирование - то есть чтобы она вообще не появлялась

198
iframetracker jquery - youtube видео this

iframetracker jquery - youtube видео this

На сайте есть несколько ютуб роликов, у враппера видео есть overlay, подскажите как при нажатии на youtube ролик убрать текущий overlay с помощью данного...

270
Правка html сайта на wordpress

Правка html сайта на wordpress

У сайта на wordpress есть элемент, у которого фон задан через атрибут style в html, вижу это через просмотр кода элемента в браузере, можно ли как-то...

260