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

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

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

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

29.07.2015, 20:17. Просмотров 308. Ответов 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
Странное форматирование в Eclipse Android
Android Редактирование текста
Android Форматирование текста и действие по нажатию кнопки назад
Размер текста Android
Ввод текста Android
Вывод текста Android
Форматирование времени Android
Android Форматирование даты из строки
Android Выравнивание текста по ширине верхнего текста
Android Форматирование строки, полученной из БД

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

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

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