Разрыв строки в формате XML? - PullRequest
68 голосов
/ 21 мая 2010

при редактировании строки в XML мне нужно добавить разрывы строк. И я хотел спросить, что такое правильная форма при программировании для Android? Потому что <br> работает, но ECLIPSE помечает область как проблемную. Если я проверю предложения, Eclipse скажет мне, что я добавлю конечный тег </br> - ЕСЛИ я добавлю, что разрыв строки исчезнет ...

Так что один работает, но помечен как проблемный, другой не работает, но Eclipse говорит мне, что все в порядке ..

Какую форму мне использовать?

Ответы [ 5 ]

132 голосов
/ 21 мая 2010

Используйте \n для разрыва строки и \t, если вы хотите вставить вкладку.

Вы также можете использовать некоторые теги XML для основного форматирования: <b> для жирного текста, <i> для курсива и <u> для подчеркнутого текста.

Другие варианты форматирования показаны в этой статье на сайте разработчиков Android:
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

14 голосов
/ 28 декабря 2012

Если вы используете res строки, используйте CDATA с \ n.

<string name="about">
    <![CDATA[
 Author: Sergio Abreu\n
 http://sites.sitesbr.net
  ]]>        
</string>
4 голосов
/ 19 июля 2011

Также вы можете добавить
вместо \ n.

И затем вы можете добавить текст в TexView:

articleTextView.setText(Html.fromHtml(textForTextView));
3 голосов
/ 02 марта 2015

Обратите внимание: я видел другие посты, в которых говорится, что &#xA; даст вам разрыв абзаца, который, как ни странно, работает в файле Android xml String.xml, но НЕ будет отображаться в устройстве при тестировании (без разрывов в все появятся). Поэтому \n отображается на обоих.

2 голосов
/ 17 апреля 2012

Вот что я использую, когда у меня нет доступа к исходной строке, например, для загруженного HTML:

// replace newlines with <br>
public static String replaceNewlinesWithBreaks(String source) {
    return source != null ? source.replaceAll("(?:\n|\r\n)","<br>") : "";
}

Для XML вам, вероятно, следует отредактировать его, чтобы заменить на <br/>.

Пример ее использования в функции (для ясности удалены дополнительные вызовы):

// remove HTML tags but preserve supported HTML text styling (if there is any)
public static CharSequence getStyledTextFromHtml(String source) {
    return android.text.Html.fromHtml(replaceNewlinesWithBreaks(source));
}

... и еще один пример:

textView.setText(getStyledTextFromHtml(someString));
...