我的strings.xml文件中有一个字符串数组,其中包含多个项目。只有一个项目具有需要显示的多个百分比“%”符号。似乎没有任何关于如何逃避它的建议。 \%,%%或在字符串数组或items标记上使用formatted =“false”。当我使用\%Eclipses显示项目的错误时,如果我使用%%然后Eclipse运行正常,但文本显示两个百分号“%%”。那么关于如何转义%的签名在strings.xml中签名?
<string-array name="details">
<item>Placement of things</item>
<item>Percentage of times placed is 30%
and percentage of times release 50%</item>
</string-array>
答案 0 :(得分:3)
答案 1 :(得分:1)
显然使用旧版本的eclipse而没有最新的Android版SDK会产生这个问题。我将eclipse升级到3.6.2,并确保安装最新版本的android sdk r10。所以希望这可以帮助某人并节省他们的时间,因为我浪费了几个小时试图修复/找到答案。
所以这个问题的答案是你可以在字符串数组项中多次使用一个%符号而不必转义它,加倍或使用CDATA,只要你拥有最新版本的SDK和Eclipse
答案 2 :(得分:1)
我有同样的问题,但无事可做,在JB 4.1.2上没有任何对我有用 这是我试过的:
<string-array name="percentage">
<item>a. 100%</item> <!-- unknownFormatConversionException -->
<item>b. 90%</item> <!-- unknownFormatConversionException -->
<item>c. 80%%</item> <!-- "somewhere" a double %% appears -->
<item>d. 60\%</item> <!-- no % appears -->
<item>e. 40\%%</item> <!-- unknownFormatConversionException -->
<item>f. 30%\%</item> <!-- unknownFormatConversionException -->
<item><![CDATA[g. 20%]]></item> <!-- unknownFormatConversionException -->
<item formatter="false>h. 10%</item> <!-- unknownFormatConversionException -->
</string-array>
使用emlator我已经看到,在ICS 4.0之前,一切都运行得很好,就像在我的Galaxy-S GB 2.3.5中一样,使用ICS及以上版本时会出现unknownFormatConversionExceptions,就像在我的Nexus S JB 4.1.2上一样。
最后,this是我的最终决定:完全省略百分比符号!
<item>a. 100</item>
<item>b. 90</item>
...
这只是一个非常粗略的解决方法,但至少我可以继续工作!
我在Ubuntu 13.04下使用ADT Build:v22.0.1-685705
测试设备:Nexus S JB 4.1.2,三星Galaxy S GB 2.3.5
答案 3 :(得分:1)
一种棘手的方法是使用百分号的unicode字符
U+FE6A ﹪ small percent sign (HTML ﹪ )
U+FF05 % full-width percent sign (HTML %)
在XML中,您可以定义如下
<string-array name="details">
<item>Placement of things</item>
<item>Percentage of times placed is 30﹪
and percentage of times release 50﹪</item>
</string-array>
答案 4 :(得分:0)
对我有用的是在strings.xml中使用百分比符号和属性 formatted =“false”声明一个新字符串
<string name="percents" formatted="false">10% is not 20%</string
然后在arrays.xml
中<string-array name="my_array">
<item>@string/percents</item>
...