2010-05-20 7 views
64

Wenn ich einen String in XML editiere, muss ich Zeilenumbrüche hinzufügen. Und ich wollte fragen, was ist die richtige Form beim Programmieren für Android? Weil <br> funktioniert, aber ECLIPSE markiert den Bereich als problematisch. Wenn ich Vorschläge auschecke sagt Eclipse mir, dass ich ein Ende-Tag hinzufügen soll </br> - WENN ich hinzufügen, dass der Zeilenumbruch verschwindet ...Zeilenumbruch bei der XML-Formatierung?

So funktioniert das aber ist als problematisch markiert, das andere funktioniert nicht aber Eclipse sagt mir es ist in Ordnung ..

Welche Form soll ich verwenden?

+3

Eine Randnotiz: ** Niemals ** '
' verwenden. Erklärung: Die meisten Markup-Sprachen (für xml, html, etc) verwenden '' zum Öffnen eines Tags, '' zum Schließen eines Tags und '' ist ein leeres hat also eine alternative Schreibweise ''. So '
' öffnet ein Tag, es ist logisch, dass die IDE gefragt, um mit '
' zu schließen, aber da der BR-Tag fast immer leer ist, ist es ratsam, ** '
' **. Irgendwie war die Frage über Java, also '\ n' ist viel besser. Die Verwendung von HTML für eine Textansicht funktioniert gut, verbraucht aber relativ viel Speicher. Verwenden Sie es nur bei Bedarf, wenn Sie eine mehrfarbige Textansicht oder etwas ähnliches möchten. –

+0

Siehe meine Antwort hier: http: // stackoverflow.com/questions/18938403/how-to-preserve-line-bricht-in-xml-string-resources-in-android/31683548 # 31683548 – Jin

Antwort

121

Verwenden Sie \n für einen Zeilenumbruch und \t, wenn Sie eine Registerkarte einfügen möchten.

Sie können auch einige XML-Tags für grundlegende Formatierungen verwenden: <b> für fettgedruckten Text, <i> für kursiv und <u> für unterstrichenen Text.

Andere Formatierungsoptionen sind in diesem Artikel auf der Website Android Developers gezeigt:
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

+0

Der obige Link ist tot, aber die Informationen sind immer noch nützlich, können Sie aktualisieren? –

3

Sie können auch <br> statt \ n hinzuzufügen.

Und dann können Sie Text zu TexView hinzufügen:

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

Hier ist, was ich benutze, wenn ich keinen Zugriff auf die Quellzeichenfolge haben z.B. für heruntergeladene HTML:

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

Für XML sollten Sie wahrscheinlich, dass bearbeiten mit <br/> statt zu ersetzen.

Beispiel für seine Verwendung in einer Funktion (zusätzliche Aufrufe zur Klarheit entfernt):

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

... und ein weiteres Beispiel:

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

Schön, funktioniert super. Vielen Dank – sandeepmaaram

12

Wenn Sie sich beziehen Strings res, Verwendung CDATA mit \ n.

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

Beachten Sie: Ich habe andere Beiträge gesehen, die &#xA; sagen geben Ihnen einen Absatzumbruch, die seltsam genug Werken im Android xml String.xml Datei, wird aber nicht in einem Gerät angezeigt, wenn die Prüfung (keine Brüche bei alle zeigen sich). Daher zeigt sich die \n auf beiden.