Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
y_e_p
3 / 3 / 0
Регистрация: 15.09.2013
Сообщений: 27
#1

SpannableStringBuilder и исходное форматирование текста - Программирование Android

29.07.2015, 20:17. Просмотров 322. Ответов 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,теряется исходное форматирование текста,которое приходит с админки сервера. Может кто стыкался,дайте совет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 20:17     SpannableStringBuilder и исходное форматирование текста
Посмотрите здесь:
Android Форматирование текста и действие по нажатию кнопки назад
Форматирование времени Android
Android Форматирование даты из строки
Android Форматирование строки, полученной из БД
Странное форматирование в Eclipse Android
Android Выравнивание текста по ширине верхнего текста
RichEdit или RTF форматирование текста, а лучше HTML форматирование Delphi FireMonkey
C++ Builder Форматирование текста
C# Форматирование текста
Форматирование текста PHP
HTML, CSS Форматирование текста
Delphi Форматирование текста

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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