70 votes

Saut de ligne dans le formatage XML ?

Lorsque je modifie une chaîne en XML, je dois ajouter des sauts de ligne. Et je voulais demander quelle est la bonne forme pour programmer pour Android ? Parce que <br> fonctionne mais ECLIPSE marque la zone comme problématique. Si je vérifie les suggestions, Eclipse m'indique que je dois ajouter une balise finale </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 ?

134voto

Christopher Orr Points 58514

Utilice \n pour un saut de ligne et \t si vous voulez insérer un onglet.

Vous pouvez également utiliser certaines balises XML pour un 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 site des développeurs Android :
http://developer.Android.com/intl/de/guide/topics/resources/string-resource.html

14voto

Sergio Abreu Points 399

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

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

4voto

Noni A. Points 149

Prenez note : j'ai vu d'autres messages qui disent que &#xA; vous donnera un saut de paragraphe, ce qui, curieusement, fonctionne dans le xml d'Android. String.xml mais il n'apparaîtra PAS dans un appareil lors du test (aucune rupture n'apparaît). Par conséquent, le fichier \n apparaît sur les deux.

4voto

androidev Alex Points 803

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

Et ensuite, vous pouvez ajouter du texte au TexView :

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

2voto

Lorne Laliberte Points 1205

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

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

Pour le XML, vous devriez probablement modifier cela pour le remplacer par <br/> à la place.

Exemple de son utilisation dans une fonction (les appels supplémentaires ont été 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));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X