Quantity Strings - Pluralization in Android
Part of Android’s robust resource framework involves a mechanism for pluralizing strings called “Quantity Strings”.
In the strings.xml file for the Hydration Reminder app, you’ll see an example of how pluralization can be used:<plurals name="charge_notification_count">
<item quantity="zero">Hydrate while charging reminder sent %d times</item>
<item quantity="one">Hydrate while charging reminder sent %d time</item>
<item quantity="other">Hydrate while charging reminder sent %d times</item>
</plurals>
When you use the plural in code, you specify a quantity number.
This number specifies what string should be used.
In this case:
- if the number is zero, use
<item quantity="zero">
- If the number is one, use
<item quantity="one">
- otherwise use
<item quantity="other">
Then in the MainActivity we have the following Java code to generate the correct String:String formattedChargingReminders = getResources() .getQuantityString(
R.plurals.charge_notification_count,
chargingReminders,
chargingReminders
);
The first usage of chargingReminder is the quantity number.
It determines which version of the pluralized string to use (you must pass in a number).
The second usage of chargingReminder is the number that’s actually inserted into the formatted string.For more detail on Quantity Strings, check out the documentation