从复数获得一个string在XML中使用?
我正在使用复数来简化我的代码。 例如,我曾经拥有
<string name="cat">Cat</string> <string name="cats">Cats</string>
使用复数而不是多个string,我现在有
<plurals name="cats"> <item quantity="one">Cat</item> <item quantity="other">Cats</item> </plurals>
不过,我曾经检索过string,将其用作XML中的标题或摘要。 例如,
android:title="@string/cats"
已经删除该string赞成复数,我现在不确定如何从XML中检索我的string。 我做了一个天真的尝试
android:title="@plurals/cats"
但这只是给我@1234567890
而不是Cats
(或Cat
)。
任何人都知道是否有可能检索从XML复数string?
你必须通过代码来设置它:
...setText(yourContext.getResources().getQuantityString(R.plurals.cats, catsCountVar));
您可以通过将string资源保留在原处并在复数资源中引用它们来获得Plurals的运行时好处以及string资源的静态好处。
从https://developer.android.com/guide/topics/resources/string-resource.html#Plurals (强调添加)。
<item>
复数或单数的string 该值可以是对另一个string资源的引用。 必须是一个元素的孩子。 当心你必须解开撇号和引号。 请参阅下面的“格式和样式”,了解有关正确设置string样式和格式的信息。 例:
<string name="cat">Cat</string> <string name="cats">Cats</string> <plurals name="cats"> <item quantity="one">@string/cat</item> <item quantity="other">@string/cats</item> </plurals>
现在你可以在XML文件中使用android:title="@string/cats"
,也可以使用
getQuantityString(R.plurals.cats, numberOfCats)
在运行时。