【问题标题】:getQuantityString not working on real devicegetQuantityString 在真实设备上不起作用
【发布时间】:2017-11-16 07:24:35
【问题描述】:

我遇到了一个奇怪的问题。 getQuantityString() 方法在android studio 模拟器上有效,但在真机上无效。

这是我在strings.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <plurals name="subtitle_plural">
        <item quantity="one">%1$s crime</item>
        <item quantity="other">%1$s crimes</item>
    </plurals>
</resources>

我的片段中的代码:

CrimeLab crimeLab = CrimeLab.get(getActivity());
int crimeSize = crimeLab.getCrimes().size();
String subTitle = getResources()
                .getQuantityString(R.plurals.subtitle_plural, crimeSize, crimeSize);

当我在模拟器上运行项目时,它可以工作。但如果在真实设备上运行,subTitle 将始终为** crimes,即使crimeSize 等于1

这是怎么发生的?

【问题讨论】:

    标签: android plural


    【解决方案1】:

    你应该这样使用:

    CrimeLab crimeLab = CrimeLab.get(getActivity());
    int crimeSize = crimeLab.getCrimes().size();
    String subTitle = String.format(getResources()
                    .getQuantityString(R.plurals.subtitle_plural, crimeSize, crimeSize));
    

    【讨论】:

    • 不,它仍然无法在真实设备上运行。这在您的设备上有效吗?
    • 是的,它对我有用。也许crimeSize 不是1。我在SM-G920F 上试过。
    • 它是如此有线。我的HUAWEI和Smartisan都没有醒来。
    • crimeSize=1 时你试过了吗?
    • 因为我做到了。 getQuantityString() 即使让 crimeSize 等于 1 也不会返回正确的结果。
    猜你喜欢
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2020-07-03
    • 2012-07-06
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多