Wie füge ich ein Leerzeichen in einen Zeichenfolgennamen in XML ein?

174

Ich habe einige Zeichenfolgen in der strings.xmlDatei definiert. Jetzt muss ich zwischen einigen Zahlen in der Zeichenfolge etwas mehr Platz einfügen. Wenn ich zusätzliche Leerzeichen eingebe, wird dies in der Anwendung jedoch nicht angezeigt.

Vor:

<string name="spelatonertext3">-4, 5, -5, 6, -6,

Und wenn ich so zusätzlichen Platz einbaue:

<string name="spelatonertext3">-4,  5, -5,   6,  -6,

In der App sieht es genauso aus. Wie kann ich Leerzeichen in die XML-Zeichenfolge einfügen?

Andreas
quelle
Nun, es sah auch auf dieser Seite gleich aus ... :) Was ist, ich möchte etwas Platz zwischen den Zahlen, wie ist das möglich?
Andreas
Verwenden Sie die Code-Formatierung, um die Leerzeichen (und <>Inhalte) in SO beizubehalten. :)
Andrew Thompson

Antworten:

405

um Leerzeichen in XML als Zeichenfolge zu verwenden &#160;. XML nimmt so wie es ist keinen Leerraum ein. Der Leerraum wird vor dem Einstellen abgeschnitten. Verwenden Sie also &#160;anstelle eines einzelnen Leerraums

ρяσssρєя K.
quelle
1
Dies funktioniert nicht mit wrap_content einer Textansicht, wenn das Leerzeichen am Ende des Textes steht. Die Textansicht behält nicht die Breite bei, die das Leerzeichen einnimmt.
toobsco42
28
Dies fügt einen nicht zerbrechlichen Raum hinzu. Es unterscheidet sich von einem normalen Bereich und funktioniert mit bestimmten Funktionen ( normalize-spacez. B. XPaths ) nicht gut. Versuchen Sie es mit &#032;(regulärem Leerzeichen) anstelle von &#160;. @ Toobsco42
Shwartz
Ich musste verwenden, &#160;anstatt \u0020ein nicht unterbrechendes Leerzeichen nach der Vorwahl in eine Telefonnummer zu setzen. Andernfalls wurde die Telefonnummer am Ende der Zeile nach der abschließenden Klammer der Vorwahl umbrochen.
mharper
& # 032; ist in Ordnung, wenn Sie 1 Platz benötigen. Wenn Sie mehrere einfügen (& # 032; & # 032; ...), werden diese auf 1 gekürzt. Ich denke, dass dies das gleiche Verhalten wie ein normales Leerzeichen ist, sodass es nutzlos erscheint. Wenn auch Vorschlag zu & # 009; (soll ein Tabulatorzeichen sein): Es wird nichts angezeigt. & # 160; funktioniert gut, es ist was ich brauche, danke ρяσsρєя K.
herve-guerin
57

Fügen Sie \ u0020 direkt in das XML ein, um ein Leerzeichen zu erhalten, das Sie beibehalten möchten.

<string name="spelatonertext3">-4, \u00205, \u0020\u0020-5, \u00206, \u0020-6,</string>
K_Anas
quelle
24

Android unterstützt es nicht, die Leerzeichen am Ende der Zeichenfolge in der Datei String.xml beizubehalten. Wenn Sie also Leerzeichen nach Zeichenfolgen möchten, müssen Sie diesen Unicode zwischen den Wörtern verwenden.

\ u0020

Es ist ein Unicode-Leerzeichen.

Saibaba Vali
quelle
Dies funktionierte bei mir mit Android Studio 3.6.2, das auf Android 4.4 kompiliert wurde. Vielen Dank.
Liebe und Frieden - Joe Codeswell
11

Wie bereits erwähnt, können Sie ein Leerzeichen in einer XML-Datei korrekt verwenden, indem Sie \u0020das Unicode-Zeichen für ein Leerzeichen verwenden.

Beispiel:

<string name="spelatonertext3">-4,\u00205,\u0020-5,\u00206,\u0020-6</string>

Andere Vorschläge haben gesagt, zu verwenden &#160;oder &#032;aber es gibt zwei Nachteile. Der erste Nachteil ist, dass es sich um ASCII-Zeichen handelt. Sie verlassen sich also auf eine Textansicht, um sie zu analysieren. Der zweite Nachteil ist, dass &#160;es manchmal zu seltsamen Zeilenumbrüchen in TextViews kommen kann.

MShipman
quelle
7

Raumvarianten:

<string name="space_demo">|&#x20;|&#x2009;|&#x200A;|</string>

| RAUM | DÜNNER RAUM | HAARRAUM |

Andrey
quelle
1
Dies ist die süßeste und beeindruckendste
Abdul Waheed
6

Dies sollte auch funktionieren. Verwenden Sie Anführungszeichen, um Platz zu erhalten

<string name="spelatonertext3">"-4,  5, -5,   6,  -6,"</string>
pcodex
quelle
1
Dies ist meiner Meinung nach die sauberste (am einfachsten zu lesende) Antwort. Leider schaffen es die meisten Leute wahrscheinlich nicht so weit unten in der Antwortliste, bevor sie weitermachen.
DavidR
5

Setzen Sie &#160;in string.xml Datei einen einzigen Raum in einem Android - Projekt anzuzeigen.

maxxi
quelle
5

Sie können auch Folgendes verwenden

<string name="spelatonertext3"> "-4,  5, -5,   6,  -6, "> </string>

Setzen Sie alles in " "(Zitat) mit Leerzeichen, und es sollte funktionieren

Surjit Singh
quelle
1
Setzen Sie alles in "" (Zitat) mit Leerzeichen, und es sollte funktionieren: DAS
FUNKTIONIERT
3

Laut Ihrer Frage gibt es viele Möglichkeiten, Leerzeichen zwischen Zeichen oder Wörtern hinzuzufügen, wenn Sie mehr als ein Leerzeichen in Zeichenfolgenressourcen hinzufügen möchten:

1. Standardmäßig können Sie ein Leerzeichen direkt in die String-Ressourcendatei einfügen, damit dies einwandfrei funktioniert. Wenn Sie jedoch mehr als ein Leerzeichen in der String-Ressourcendatei angeben, werden diese Leerzeichen ausgeschlossen. z.B . -4, 5, -5, 6, -6,

  1. Wenn Sie mehr zusätzliche Leerzeichen in die String-Ressourcendatei einfügen möchten, verwenden Sie: - i. Hinzufügen von Unicode nach Zeichen wie

        <string name="test">-4,&#160;&#160;5,&#160;&#160;-5,&#160;&#160;6,&#160;&#160;-6,</string>

Sie können "\ u0020" verwenden.

<string name="test">-4,\u0020\u0020 5,\u0020\u00205 -5,\u0020\u00205 6,\u0020\u00205 -6,</string>
Sagar Chorage
quelle
3

Wenn Sie versuchen, Leerzeichen zwischen 2 Zeichenfolgen ODER in der Zeichenfolgendatei von Android anzugeben, tun Sie dies in Ihrer Zeichenfolgendatei. Implementieren Sie dies vor Ihrem "String-Namen", den Sie anzeigen möchten. \ u0020 \ u0020 Zum Beispiel. \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020Zahlung

Rakesh Jha
quelle
2

xml: space = "bewahren"

Klappt wunderbar.

Edit: Falsch. Tatsächlich funktioniert es nur, wenn der Inhalt nur aus Leerzeichen besteht.

Verknüpfung

PauLEffect
quelle
1

Wenn die Ausgabe HTML ist, werden in HTML mehrere Leerzeichen als ein einzelnes Leerzeichen angezeigt. Um dies zu verhindern, verwenden Sie nicht unterbrechende Leerzeichen (xA0) anstelle von normalen Leerzeichen.

Michael Kay
quelle
1

Nur so konnte ich mehrere Leerzeichen in der Mitte der Zeichenfolge erhalten.

<string name="some_string">Before" &#x20; &#x20; &#x20;"After</string>

Before   After
drod
quelle
0

Wenn es wie "-4, 5, -5, 6, -6," (zwei Leerzeichen) angezeigt werden soll, können Sie string.xml den folgenden Code hinzufügen

<string name="spelatonertext3"> "-4,&#160;&#160;5,&#160;-5,&#160;&#160;6,&#160;&#160;-6,"</string>

  ist ein Leerzeichen anzeigen.

Hai Rom
quelle