Как я могу прочитать разрывы в загруженном тексте?

Я использую библиотеку Java Last.fm, которая указана в разделе "Загрузки" в API. . Когда я вызываю "getWikiText()" и устанавливаю его в свой TextView, возвращаются все данные; однако html отформатирован неправильно. Вместо того, чтобы показывать отдельные абзацы, данные отображаются как один большой текст. Чтобы проиллюстрировать, что я имею в виду, вот изображение того, что возвращается, а затем ссылка на страницу художника о том, как все должно выглядеть.

Изображение - http://i.imgur.com/ameTO.jpg

Как все должно выглядеть - http://www.last.fm/music/Bon+Iver

Это то, что я звоню, чтобы получить информацию об исполнителе, но что мне не хватает в отношении интервала между абзацами? Я искал довольно много, но в частности информации по этому поводу не так много. Сейчас я в основном снимаю в темноте, поэтому мне нужна небольшая помощь.

artistInfo = Artist.getInfo("Bon Iver",key);
artistText = artistInfo.getWikiText();
info.setText("");
info.append(Html.fromHtml((artistText)));

person adneal    schedule 05.02.2012    source источник
comment
Предоставляют ли они вам какой-либо разделитель для строк (возврат каретки или перевод строки) или это просто текст и пробелы?   -  person Matthew    schedule 05.02.2012
comment
Не то чтобы я в курсе. Библиотека помогает мне анализировать XML, который вы извлекаете из Last.fm. Вот пример анализа XML. (прокрутите вниз и посмотрите на тег содержимого.) Сегодня утром я попытался создать строку из тега содержимого, я просто вставил все, но в итоге получил тот же результат. Я знаю, что данные могут быть возвращены так, как я хочу, я видел, как это делается. Я не уверен, что мне не хватает в этот момент.   -  person adneal    schedule 05.02.2012
comment
В этом XML есть возврат каретки и перевод строки. Похоже, они находятся в подходящих местах для абзацев.   -  person Matthew    schedule 06.02.2012
comment
Итак, вы знаете способ поймать их? У меня сложилось впечатление, что использование Html.fromHtml() естественным образом распознает их и соответственно разместит вещи, но кажется, что нужно что-то еще.   -  person adneal    schedule 06.02.2012
comment
Что ж, я бы сделал это с помощью StringTokenizer - я считаю, что использование \r\n будет соответствовать. Возможно, существует лучший способ, если вы используете библиотеки Android. Я не совсем уверен.   -  person Matthew    schedule 06.02.2012


Ответы (1)


Достаточно сделать простой вызов replaceAll():

String artistText = artistInfo.getWikiText();
artistText = artistText.replaceAll("\n", "<br />");
info.setText(Html.fromHtml(artistText));

Пример результата

person ariefbayu    schedule 07.02.2012
comment
Я позвонил artistInfo.getWikiText().replaceAll("\n", "<br />");, и содержание осталось прежним. Я также назвал это в Html.fromHtml() и в setText(), все еще без изменений. Я также попробовал то, что вы отредактировали, все равно ничего. Фактическое содержание остается неизменным. Однако лицензия Creative Commons в конце текста нарушается. - person adneal; 07.02.2012
comment
посмотрите на прикрепленный код, который я дал вам, как сделать replaceAll(). Я проверил это, и это сработало! - person ariefbayu; 07.02.2012
comment
Верно, я сделал. Я использовал его точно так, как вы продемонстрировали, но результат все тот же. - person adneal; 07.02.2012
comment
не делай info.append(). Сделайте info.setText(Html.fromHtml(artistText)); - person ariefbayu; 07.02.2012
comment
Хорошо, я вижу снимок экрана. Странно, что мой не меняется. Тогда мне придется попробовать и посмотреть, чем мое приложение отличается от вашего тестового приложения. - person adneal; 07.02.2012
comment
Итак, я скопировал ваш код, чтобы быть уверенным, что не напортачу, все равно не работает. Затем я полностью построил ваш проект и попробовал его, угадайте, что? http://i.imgur.com/vd2gW.png Как вы думаете, сэндвич с мороженым виновник здесь? - person adneal; 07.02.2012
comment
хм... не уверен. Я попробую скачать ICS sdk и протестировать его. - person ariefbayu; 07.02.2012
comment
давайте продолжим это обсуждение в чате - person ariefbayu; 07.02.2012
comment
Да это оно. Я только что протестировал его на эмуляторе Gingerbread, и он работал так, как должен. Ну, я понятия не имею, как это исправить, если у меня проблемы с ICS. - person adneal; 07.02.2012
comment
Есть ли шанс, что Ice Cream Sandwich игнорирует ваши теги BR? Возможно, вы могли бы обернуть текст тегами P и посмотреть, сработает ли это. - person Matthew; 08.02.2012