开发者

How to write character & in android strings.xml

I wrote the following in the strings.xml file:

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

I got the following error:

The reference to entity "Drop" must end with the ';' delimiter.
开发者_运维知识库

How can I write character & in the strings.xml?


Encode it:

&amp;


For special character I normally use the Unicode definition, for the '&' for example: \u0026 if I am correct. Here is a nice reference page: http://jrgraphix.net/research/unicode_blocks.php?block=0


This is a my issues, my solution is as following: Use &gt; for >, &lt;for < , &amp; for & ,"'" for ' , &quot for \"\"


Even your question is answered, still i want tell more entities same like this. These are html entities, so in android you will write them like:

Replace below with:

& with &amp;
> with &gt;
< with &lt;
" with &quot;, &ldquo; or &rdquo;
' with &apos;, &lsquo; or &rsquo;
} with &#125;


It should be like this :

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


& in string like:

<string name="string_abc">Translate &amp; Scan Objects</string>

Output will be:

Translate & Scan Objects


It is also possible put the contents of your string into a XML CDATA, like Android Studio does for you when you Extract string resource

<string name="game_settings_dragNDropMove_checkBox"><![CDATA[Move by Drag&Drop]]></string>


This may be very old. But for those whose looking for a quick code.

 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;
 }

That handles escape characters, you can add characters and symbols on their respective arrays.

-Cheers


To avoid the error, use extract string:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>


You can write in this way

<string name="you_me">You &#38; Me<string>

Output: You & Me


Mac and Android studio users:

Type your char such as & in the string.xml or layout and choose "Option" and "return" keys. Please refer the screen shot


If you want to hardcode the string in xml directly, you can add it up this way.

  <TextView 
     android:layout_marginStart="5dp"
     android:layout_marginLeft="5dp"
     android:layout_centerVertical="true"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="You &amp; Me"


The simplest way I've found is to replace the '&' with the Unicode equivalent. So for the example given write:

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


I'm posting this because none of the above encodings worked for me.

I found that replacing the ampersand with the sequence: &#38; worked as an xml string resource. As in:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜