android 如何知道使用公制还是英制

pdtvr36n  于 2023-05-05  发布在  Android
关注(0)|答案(2)|浏览(162)

我怎么知道在android中是使用公制还是英制?我还没有看到Locale中的任何选项,唯一想到的就是使用locale.getCountry();方法,并检查国家是否是英国,美国,…但是,有没有一个机器人的方法来了解它?
先谢谢你了!

whlutmcx

whlutmcx1#

一个或多或少完整的方法是这样做的:

Kotlin:

private fun Locale.toUnitSystem() =
    when (country.toUpperCase()) {
        // https://en.wikipedia.org/wiki/United_States_customary_units
        // https://en.wikipedia.org/wiki/Imperial_units
        "US" -> UnitSystem.IMPERIAL_US
        // UK, Myanmar, Liberia, 
        "GB", "MM", "LR" -> UnitSystem.IMPERIAL
        else -> UnitSystem.METRIC
    }

请注意,英国和美国的帝国系统之间存在差异,请参阅wiki文章以了解更多细节。

6ju8rftf

6ju8rftf2#

我在Kotlin中使用了这个扩展函数:

fun Locale.isMetric(): Boolean {
    return when (country.uppercase(this)) {
        "US", "LR", "MM", "BS", "BZ", "KY", "PW", "GB", "UK" -> false
        else -> true
    }
}

相关问题