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

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

这个问题可能很老了,但到目前为止,最简单的方法就是加引号。 例如:

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

有可能有不同宽度的空间:

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

| SPACE | THIN SPACE | HAIR SPACE | no SPACE |

可视化:

如果你需要空间用于以后将它与其他字符串连接,那么你可以使用字符串格式化方法,在你的字符串定义中添加参数:

<string name="error_">Error: %s</string>

然后格式化字符串(例如如果服务器返回错误,则使用getString(r.r string.string_resource_example)):

String message = context.getString(R.string.error_, "Server error message here")

结果是:

Error: Server error message here

我也遇到了同样的问题。我想在表示屏幕上字段名的资源字符串的末尾留下一个空白。

我在这个问题报告上找到了一个解决方案:https://github.com/iBotPeaches/Apktool/issues/124

这和Duessi提出的观点是一样的。直接在XML中插入\u0020作为您想保留的空白。

例子:

<string name="your_id">Score :\u0020</string>

替换是在构建时完成的,因此它不会影响游戏的性能。