我必须从我的资源/值文件连接这两个字符串:

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>

我是这样做的:

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();

而是在第一个弦的末尾和第二个弦的开头 (在播放祝酒词时)……

我该怎么办?

我想答案就在这个文档链接中

或者类似于使用&对于“&”字符??


当前回答

我只是在strings.xml文件中使用UTF代码作为空格“\u0020”。

<string name="some_string">\u0020The name of my string.\u0020\u0020</string>

伟大的工作。(Android喜欢UTF代码)

其他回答

这实际上可能没有回答问题(如何在XML中保留空白),但它可以更优雅地解决底层问题。

不要仅仅依赖于XML资源,而是使用格式字符串进行连接。 因此,首先删除空白

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on</string>
<string name="Toast_Memory_GameWon_part2">flips !</string>

然后以不同的方式构建你的字符串:

String message_all_pairs_found = 
      String.format(Locale.getDefault(), 
                    "%s %d %s", 
                    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();

可以通过编程方式添加空格。由于这些情况将经常用于串联,我决定停止疯狂,只使用旧的+ " " +。我想,这些在大多数欧洲语言中都是有意义的。

这里所有的答案都不适合我。相反,在XML字符串的末尾添加一个空格,我这样做了

<string name="more_store">more store<b> </b> </string>

即使使用字符串格式,有时仍然需要在字符串的开头或结尾使用空格。对于这些情况,使用\或xml:space属性都无济于事。你必须使用HTML实体&#160;对于空格。

使用& # 160;对于不可分割的空格。 使用& # 032;对于常规空间。

还有使用CDATA的解决方案。例子:

<string name="test"><![CDATA[Hello          world]]></string>

但总的来说,我认为\u0020已经足够好了。