这是我的复数的资源文件:
<?xml version="1.0" enCoding="utf-8"?> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <plurals name="meters"> <item quantity="one">1 meter</item> <item quantity="other"> <xliff:g ID="count">%d</xliff:g> meters </item> </plurals> <plurals name="degrees"> <item quantity="one">1 degree</item> <item quantity="other"> <xliff:g ID="count">%d</xliff:g> degrees </item> </plurals> </resources>
…然后这里是我试图从我的资源中提取数量字符串时使用的代码:
Resources res = this.getResources();tTemp.setText(res.getQuantityString(R.plurals.degrees,this.mObject.temp_c.intValue()));
…但TextVIEw中的文本仍然是%d度和%d米.
有人知道发生了什么吗?我调试了代码,res.getQuantityString(…)调用返回一个值为%d度或%d米的字符串.虽然当数量恰好为1时,它正确地评估为1度或1米.
提前感谢任何帮助!
问候,celestialorb.
解决方法 看来,您需要指定两次计数,第一个用于确定要使用的字符串,第二个是替换为字符串的字符串.例如Resources res = this.getResources();int tv = this.mObject.temp_c.intValue();tTemp.setText(res.getQuantityString(R.plurals.degrees,tv,tv));
至少在我的测试中,资源中的xliff:g元素是不需要的.
总结以上是内存溢出为你收集整理的Android多元化不起作用,需要帮助全部内容,希望文章能够帮你解决Android多元化不起作用,需要帮助所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)