GetQuantityString возвращает неверную строку с 0 значением

В приложении 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 элемент

Почему?

Ответ 1

Количество Строки разбиты на некоторых Plattforms и телефонах как Tracker вопроса и это обсуждение "Должны ли цепочки чисел и количества строк используется" . Это зависит от многих факторов, которые вы не можете контролировать (например, локализации на телефоне).

Одним из решений может быть использование внешней библиотеки, такой как этот, что и те же функции.

Другое решение изложено в документации по множественным числам в android. Избегайте использования его и используйте "нейтральные по количеству" формулировки типа "Книги: 1"

Ответ 2

Измените код, подобный этому

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