【问题标题】:call requires api level 24 (current min is 21) new android.icu.text.DecimalFormat调用需要 api 级别 24(当前最低为 21)新的 android.icu.text.DecimalFormat
【发布时间】:2017-03-20 02:54:30
【问题描述】:

对不起,我是新手,如何在旧 API 中调用它? 获取此警告调用需要 api 级别 24(当前最低为 21)新的 android.icu.text.DecimalFormat

public static String roundThousandsIntoK(Number number) {
    char[] suffix = {' ', 'k', 'M', 'B', 'T', 'P', 'E'};
    long numValue = number.longValue();
    int value = (int) Math.floor(Math.log10(numValue));
    int base = value / 3;
    if (value >= 3 && base < suffix.length) {
        return new DecimalFormat("#0.0").format(numValue / Math.pow(10, base * 3)) + suffix[base];
    } else {
        return new DecimalFormat("#,##0").format(numValue);
    }
}

【问题讨论】:

  • 您可能想要java.text.DecimalFormat 而不是android.icu.text.DecimalFormat。检查文件顶部的import 语句。
  • 哇,太快了,非常感谢

标签: android parse-platform


【解决方案1】:

你应该使用java的十进制格式

java.text.DecimalFormat

请参考http://tutorials.jenkov.com/java-internationalization/decimalformat.html

【讨论】:

    【解决方案2】:

    要解决需要 API 级别的错误,您可以按照以下步骤操作:- 1)转到文件 2)然后选择“项目结构” 3)然后进入模块部分并单击“默认配置” 4)向下滚动并单击 min SDK version 并选择 5)按确定

    【讨论】:

    • 使用java十进制格式这个错误甚至不存在,这种情况对使用icu版本没有好处。此外,像这样的 api 警告通常需要使用 build.version 测试来替代代码。降低 SDK 版本应该考虑目标受众,而不仅仅是处理编码问题。
    猜你喜欢
    • 1970-01-01
    • 2016-12-20
    • 2017-02-23
    • 2021-01-13
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多