Saut de ligne 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? Parce que <br> fonctionne mais ECLIPSE marque la zone comme problématique. Si je consulte des suggestions, Eclipse me dit que j'ajouterai 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..

Quel formulaire dois-je utiliser?

66
demandé sur Oliver Goossens 2010-05-21 01:03:49

5 réponses

Utiliser \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 l'italique et <u> pour le texte souligné.

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

127
répondu Christopher Orr 2016-09-24 00:12:12

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

<string name="about">
    <![CDATA[
 Author: Sergio Abreu\n
 http://sites.sitesbr.net
  ]]>        
</string>
12
répondu Sergio Abreu 2012-12-28 12:48:29

Vous pouvez Également ajouter
au lieu de \n.

Et puis vous pouvez ajouter du texte à TexView:

articleTextView.setText(Html.fromHtml(textForTextView));
3
répondu mobiledev Alex 2011-08-17 21:21:35

Prenez note: j'ai vu d'autres messages qui disent que &#xA; vous donnera une pause de paragraphe, qui fonctionne assez curieusement dans le fichier Android xml String.xml, mais N'apparaîtra pas dans un périphérique lors du test (aucune pause n'apparaît). Par conséquent, le \n apparaît sur les deux.

3
répondu Azurespot 2015-10-04 02:29:58

Voici ce que j'utilise quand 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 modifier cela pour le remplacer par <br/> à la place.

Exemple de son utilisation dans une fonction (appels supplémentaires retiré 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));
1
répondu Lorne Laliberte 2012-04-17 08:44:16