2010-05-20 4 views
64

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

Итак, один работает, но отмечен как проблематичный, другой работает не, но Eclipse сообщает мне его ОК ..

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

+3

На боковой ноте: ** Никогда ** используйте '
'. Объяснение: большинство языков разметки (для xml, html и т. Д.) Используют '' для открытия тега '' для закрытия тега, а '' является пустым, поэтому имеет альтернативную нотацию ''. Итак, '
' открывает тег, логика IDE запрашивается закрыть с '
', но поскольку br-tag почти всегда пуст, рекомендуется использовать ** '
' **. В любом случае вопрос был о Java, поэтому '\ n' намного лучше. Использование html для текстового просмотра отлично работает, но потребляет относительно много памяти. Используйте его только при необходимости, если вам нужен многоцветный текст или что-то в этом роде. –

+0

См. Мой ответ здесь: http: // stackoverflow.com/questions/18938403/how-to-preserve-line-breaks-in-xml-string-resources-in-android/31683548 # 31683548 – Jin

ответ

121

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

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

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

+0

Вышеупомянутая ссылка мертва, но информация по-прежнему полезна, можете ли вы обновить ее? –

3

Также вы можете добавить < бр > вместо \ п.

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

articleTextView.setText(Html.fromHtml(textForTextView)); 
1

Вот что я использую, когда нет доступа к исходной строке, например, для скачанного 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)); 
+0

Nice, работает потрясающе. благодаря – sandeepmaaram

12

Если вы имеете в виду в разрешении строк, использование CDATA с \ n.

<string name="about"> 
    <![CDATA[ 
Author: Sergio Abreu\n 
http://sites.sitesbr.net 
    ]]>   
</string> 
3

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