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