Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
y_e_p
3 / 3 / 0
Регистрация: 15.09.2013
Сообщений: 27
#1

SpannableStringBuilder и исходное форматирование текста

29.07.2015, 20:17. Просмотров 434. Ответов 0
Метки нет (Все метки)

Здаровушки разработчикам! Битый час ломаюсь над одной проблемкой. Суть такова,с сервера приходят новости,и в тексте новости есть свой тег такого вида [xxx]Site|http://site.org[/xxx].
Так вот,это все счастье я уже обработал и разобрал с помощью этого:
Java
1
text = text.replaceAll("\\[([^\\]]+)\\]([^|]+)\\|(http.+?)\\[/\\1\\]", "<a href=\"$3\">$2</a>");
А так же ответ на стэкэ помог сделать ссылки кликабельными (чтобы открывать внутренний браузер приложения). http://stackoverflow.com/a/19989677/3815660

Мой код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class TextUtil {
 
    private static void makeLinkClickable(final Activity context, SpannableStringBuilder strBuilder, final URLSpan span) {
        int start = strBuilder.getSpanStart(span);
        int end = strBuilder.getSpanEnd(span);
        int flags = strBuilder.getSpanFlags(span);
        ClickableSpan clickable = new ClickableSpan() {
            public void onClick(View view) {
                Toast.makeText(context, "URL:" + span.getURL(), Toast.LENGTH_SHORT).show();
                context.startActivity(new Intent(context, BrowserActivity.class).putExtra(BrowserActivity.LINK_DATA, span.getURL()));
                // Do something with span.getURL() to handle the link click...
            }
        };
        strBuilder.setSpan(clickable, start, end, flags);
        strBuilder.removeSpan(span);
    }
 
    public static void setTextViewHTML(final Activity context, TextView text, String html) {
        CharSequence sequence = Html.fromHtml(html);
        SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
        URLSpan[] urls = strBuilder.getSpans(0, sequence.length(), URLSpan.class);
        for (URLSpan span : urls) {
            makeLinkClickable(context, strBuilder, span);
        }
        text.setText(strBuilder);
    }
}
Но есть пролема после прогонки текста в SpannableStringBuilder,теряется исходное форматирование текста,которое приходит с админки сервера. Может кто стыкался,дайте совет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 20:17
Ответы с готовыми решениями:

Связь append и replace в EditText и SpannableStringBuilder
Читаю исходники стандартного Калькулятора Google, было интересно как в нём...

Форматирование текста в программах и играх
Добрый день! Я переводчик, не силен в программировании. Недавно занялся...

Форматирование текста и действие по нажатию кнопки назад
День добрый! Столкнулся с такой проблемой: -есть текст и его надо выровнять...

RichEdit или RTF форматирование текста, а лучше HTML форматирование
Привет формучани. Подскажите бесплатный компонент который позволил бы...

Форматирование текста и изменение цвета текста в консоли
Подскажите пожалуйста, как форматировать текст в консоли, а также как менять...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2015, 20:17

Форматирование текста
Здравствуйте! Подскажите, почему document.writeln() игнорирует...

Форматирование текста
Доброго времени суток. Допустим,есть 1 Memo. Вводится текст и разбирается на...

Форматирование текста.
Доброй ночи! Уважаемые пользователи портала подскажите пожалуйста как сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru