मैसेजफ़ॉर्मैट पर स्विच किए बिना इस समस्या को हल करने के लिए एक वर्कअराउंड का उपयोग कर रहा हूं।
पहले मैं "शून्य" स्ट्रिंग को अपने स्वयं के स्ट्रिंग संसाधन में निकालता हूं।
<string name="x_items_zero">No items.</string>
<plurals name="x_items">
<item quantity="zero">@string/x_items_zero</item>
<item quantity="one">One item.</item>
<item quantity="other">%d items.</item>
</plurals>
तब मेरे पास अपने ResourcesUtil में कुछ सुविधा विधियाँ हैं
public static String getQuantityStringZero(Resources resources, int resId, int zeroResId, int quantity) {
if (quantity == 0) {
return resources.getString(zeroResId);
} else {
return resources.getQuantityString(resId, quantity, quantity);
}
}
public static String getQuantityStringZero(Resources resources, int resId, int zeroResId, int quantity, Object... formatArgs) {
if (quantity == 0) {
return resources.getString(zeroResId);
} else {
return resources.getQuantityString(resId, quantity, formatArgs);
}
}
अब कभी भी मैं मात्रा शून्य के लिए एक विशिष्ट स्ट्रिंग का उपयोग करना चाहता हूं जिसे मैं कहता हूं:
String pluralString = ResourcesUtil.getQuantityStringZero(
getContext().getResources(),
R.plural.x_items,
R.string.x_items_zero,
quantity
);
काश कुछ बेहतर होता लेकिन स्ट्रिंग संसाधन XML को सुपाच्य रखते हुए यह काम कम से कम हो जाता।