I'm trying to use multi-line constants (defined in .xml file under /res/values/ folder), but it seems it's impossible to preserve line breaks there - they all being converted in spaces. I've tried to play with "formatted" attribute of strings (setting it both to "true" and "false", also I've tried wrapping strings in CDATA tags, like this:
<string name="str1">
A
B
C
</string>
<string name="str2" formatted="true">
A
B
C
</string>
<string name="str3" formatted="false">
A
B
C
</string>
<string name="str4"><![CDATA[
A
B
C
]]></string>
<string name="str5" formatted="true"><![CDATA[
A
B
C
]]></string>
<string name="str6" formatted="false"><![CDATA[
A
B
C
]]></string>
All these string declaration variants produce identical results - five-character string "A B C" (line breaks replaced by single space). Is there any way to avoid this?
P.S. I understand that I can use "\n" to insert line breaks, but anyway resulting string will contain spaces in place of actual line-breaks; i.e., following declaration:
<string name="str1">
A\n
B\n
C\n
</string>
results in string "A\n B\n C\n" (every manually inserted line break followed by annoying space). Is there any workaround?..
In case people are having problems with this, inserting \n
at the end of XML string causes indentation. For example:
<string name="test">
A\n
B\n
C
</string>
Will appear as
A
B
C
Instead, you need to insert \n
at BEGINNING of XML strings
<string name="test">
A
\nB
\nC
</string>
This will cause the new lines to show up properly.