web-dev-qa-db-fra.com

Line Break dans le formatage XML?

lors de l'édition d'une chaîne en XML, j'ai besoin d'ajouter des sauts de ligne. Et je voulais demander quelle est la bonne forme lors de la programmation pour Android? Car <br> fonctionne mais Eclipse indique que la zone est problématique. Si je vérifie les suggestions Eclipse me dit que je vais ajouter une balise de fin </br> - SI j'ajoute que le saut de ligne disparaît ...

Donc, l'un fonctionne mais est marqué comme problématique, l'autre ne fonctionne pas, mais Eclipse me dit que c'est ok ..

Quelle forme dois-je utiliser?

68
Oliver Goossens

Utilisation \n pour un saut de ligne et \t _ si vous souhaitez insérer un onglet.

Vous pouvez également utiliser des balises XML pour le formatage de base: <b> pour le texte en gras, <i> pour les italiques et <u> pour le texte souligné.

D'autres options de formatage sont présentées dans cet article sur le Android site des développeurs:
https://developer.Android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

132
Christopher Orr

Si vous faites référence à des chaînes rouges, utilisez CDATA avec\n.

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

Vous pouvez aussi ajouter <br> au lieu de\n.

Et ensuite, vous pouvez ajouter du texte à TexView:

articleTextView.setText(Html.fromHtml(textForTextView));
4
mobiledev Alex

Prenez note: j'ai vu d'autres articles qui disent &#xA; vous donnera un saut de paragraphe, ce qui fonctionne assez curieusement dans le Android xml String.xml, mais n'apparaîtra PAS dans un appareil lors des tests (aucune pause ne sera affichée). Par conséquent, la \n apparaît sur les deux.

3
Azurespot

Voici ce que j'utilise lorsque je n'ai pas accès à la chaîne source, par exemple: pour le HTML téléchargé:

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

Pour XML, vous devriez probablement éditer cela pour le remplacer par <br/> au lieu.

Exemple d'utilisation dans une fonction (appels supplémentaires supprimés pour plus de clarté):

// 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));
}

... et un autre exemple:

textView.setText(getStyledTextFromHtml(someString));
2
Lorne Laliberte