我在strings.xml文件中写了以下内容:

<string name="game_settings_dragNDropMove_checkBox">Move by Drag&Drop</string>

我得到了以下错误:

The reference to entity "Drop" must end with the ';' delimiter.

我怎么能写字符&在字符串。xml?


当前回答

这可能很古老了。但对于那些寻找快速代码的人。

 public String handleEscapeCharacter( String str ) {
    String[] escapeCharacters = { "&gt;", "&lt;", "&amp;", "&quot;", "&apos;" };
    String[] onReadableCharacter = {">", "<", "&", "\"\"", "'"};
    for (int i = 0; i < escapeCharacters.length; i++) {
        str = str.replace(escapeCharacters[i], onReadableCharacter[i]);
    } return str;
 }

它处理转义字符,您可以在它们各自的数组中添加字符和符号。

干杯

其他回答

我发现的最简单的方法是将“&”替换为对应的Unicode。对于上面给出的例子,写如下:

<string name="game_settings_dragNDropMove_checkBox">Move by Drag\u0026Drop</string>

它也可以把你的字符串的内容到一个XML CDATA,就像Android Studio为你做的,当你提取字符串资源

<弦name = " game_settings_dragNDropMove_checkBox > < ![CDATA[trag&drop Move]></字符集

对于特殊字符,我通常使用Unicode定义,例如“&”,如果我是正确的:\u0026。这里有一个很好的参考页面:http://jrgraphix.net/research/unicode_blocks.php?block=0

我发布这个是因为上面的编码都不适合我。

我发现用序列替换&#38;作为XML字符串资源工作。如:

<string name="webLink"><a href="https://www.example.com?param1=option1&#38;param2=option2">click here</a></string>