I have to concatenate these two strings from my resource/value files:
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>
I do it this way :
String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+total_flips+getString(R.string.Toast_Memory_GameWon_part2);
Toast.makeText(this, message_all_pairs_found, 1000).show();
But the spaces at the end of the first string and at the beginning of the second string have disappeared (when the Toast is shown) ...
What should I do ?
I guess the answer is somewhere here in this documentation link
or is it something like using & ;
for the "&" character ??
It does not work with xml:space="preserve"
so I did it the quickest way =>
I simply added a +" "+ where I needed it ...
I ran into the same issue. I wanted to leave a blank at the end of a resource string representing an on-screen field name.
I found a solution on this issue report : https://github.com/iBotPeaches/Apktool/issues/124
This is the same idea that Duessi suggests. Insert
\u0020
directly in the XML for a blank you would like to preserve.Example :
The replacement is done at build time, therefore it will not affect the performance of your game.
I just use the UTF code for space "\u0020" in the strings.xml file.
works great. (Android loves UTF codes)
If you really want to do it the way you were doing then I think you have to tell it that the whitespace is relevant by escaping it:
However, I'd use string formatting for this. Something like the following:
then
There is possible to space with different width:
| SPACE | THIN SPACE | HAIR SPACE | no space |
Visualisation:
This may not actually answer the question (How to keep whitespaces in XML) but it may solve the underlying problem more gracefully.
Instead of relying only on the XML resources, concatenate using format strings. So first remove the whitespaces
And then build your string differently: