Android字符串数组显示百分号

时间:2011-03-28 21:34:50

标签: android arrays xml

我的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>

5 个答案:

答案 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&#37;</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 &#65130; )
U+FF05 % full-width percent sign (HTML &#65285;)

在XML中,您可以定义如下

    <string-array name="details">
         <item>Placement of things</item>
         <item>Percentage of times placed is 30&#65130; 
             and percentage of times release 50&#65130;</item>
    </string-array>

Percent Sign on Wikipedia

答案 4 :(得分:0)

对我有用的是在strings.xml中使用百分比符号和属性 formatted =“false”声明一个新字符串

<string name="percents" formatted="false">10&#37; is not 20&#37;</string

然后在arrays.xml

<string-array name="my_array">
    <item>@string/percents</item>
    ...