我正在使用 android-sdk 提供的复数字符串。我使用以下代码创建了一个复数字符串:
<plurals name="valuestr">
<item quantity="zero">Choose a value.</item>
<item quantity="one">%d unit.</item>
<item quantity="other">%d units.</item>
</plurals>
Java 代码:
textView.setText(getResources().getQuantityString(R.plurals.valuestr,0,0));
当我设置“0”以外的任何值时,这工作正常,但是当我设置“0”时,它显示“0 单位”。.
请帮忙!
更新
在互联网上搜索更多内容时,我遇到了一个使用java.text.MessageFormat
类的解决方法:
<resources>
<string name="item_shop">{0,choice,0#No items|1#One item|1<{0} items}</string>
</resources>
然后,从代码中您所要做的就是:
String fmt = resources.getText(R.string.item_shop);
textView.setText(MessageFormat.format(fmt, amount));
您可以在MessageFormat 的 javadocs 中阅读有关格式字符串的更多信息