我必须从我的资源/值文件连接这两个字符串:
<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();
但是第一个字符串末尾和第二个字符串开头的空格已经消失(当显示Toast时)......
我该怎么办 ?
我想答案就在这里documentation link
或者是"&"字符使用 & ; ?
15 回答
这个documentation建议引用会起作用:
我只是在strings.xml文件中使用UTF代码“\ u0020” .
效果很好 . (Android喜欢UTF代码)
这个问题可能很旧,但截至目前,最简单的方法是添加引号 . 例如:
可能有不同宽度的空间:
|空间|薄的空间|头发空间|没有空间|
可视化:
即使您使用字符串格式,有时您仍然需要在字符串的开头或结尾处使用空格 . 对于这些情况,使用
\
和xml:space
属性进行转义都不会有帮助 . 您必须将HTML实体 
用于空格 .将
 
用于不可破解的空格 .使用
 
作为常规空间 .我遇到了同样的问题 . 我想在表示屏幕字段名称的资源字符串末尾留空 .
我在此问题报告中找到了解决方案:https://github.com/iBotPeaches/Apktool/issues/124
这与Duessi建议的想法相同 . 直接在XML中插入
\u0020
,以获取要保留的空白 .示例:
替换是在构建时完成的,因此不会影响游戏的性能 .
如果你真的想按照你的方式去做那么我认为你必须通过逃避它来告诉它空白是相关的:
但是,我会使用string formatting . 类似于以下内容:
然后
将“”与字符串资源值一起使用 .
示例:“带空格的值”
要么
使用\ u0020空间代码 .
运作良好我正在使用\ u0020
Java file
截图here Image of Showing Working of this code
这里的所有答案对我都不起作用 . 相反,要在
XML
中的字符串末尾添加空格,我就这样做了可以通过编程方式添加空格 . 由于这些案例经常用于连接,我决定停止疯狂,只做旧的
+ " " +
. 我会收集这些在大多数欧洲语言中都有意义的 .我不知道特别是Android,但这看起来像通常的XML空格处理 - 元素中的前导和尾随空格通常被认为是无关紧要的并被删除 . 试试
xml:space
:这可能实际上没有回答问题(如何在XML中保留空格),但它可以更优雅地解决底层问题 .
而不是仅依赖于XML资源,使用格式字符串连接 . 所以首先删除空格
然后以不同方式构建字符串:
如果您需要空间以便稍后将其与其他字符串连接,那么您可以使用字符串格式化方法向字符串定义添加参数:
然后将字符串格式化为:
它不适用于xml:space =“preserve”
所以我以最快的方式做到了=>
我只是添加了一个“”,我需要它...