getQuantityString返回带有0值的错误字符串

时间:2012-11-21 12:14:18

标签: android android-resources

在Android应用程序中,我有以下字符串资源:

<plurals name="test">
   <item quantity="zero">"I have 0 item"</item>
   <item quantity="one">"I have 1 item"</item>
   <item quantity="other">"I have several items"</item>
</plurals>

以下代码行:

String text = getResources().getQuantityString(R.plurals.test, 0)

我期望返回

  

我有0项

但它实际上会返回

  

我有1件

为什么?

2 个答案:

答案 0 :(得分:7)

一些Plattforms和手机上的数量字符串已被issue Tracker打破,此讨论"Should Plurals and Quantity Strings be used"指出。这取决于许多你无法控制的因素(即手机上的本地化)。

一个解决方案可以是使用像this one这样的外部库,它可以模拟相同的功能。

另一个解决方案在android中的复数文档中说明。避免使用它并使用“数量中性”配方,如“书籍:1”

答案 1 :(得分:-4)

像这样更改代码

String text = getResources().getQuantityString(R.plurals.test, 0,0);