使用区域设置来检测是否使用英制单位

2024-01-28

我正在开发一个应用程序,想要以厘米 (cm) 或英寸 (") 为单位显示长度。有没有办法从区域设置中选择正确的单位?无论如何,我还将输入一个选项,以便用户可以覆盖区域设置。

美国、利比里亚和缅甸应使用英制单位,而世界其他国家应使用正常单位。一种方法是将此逻辑放入我自己的类中,但我更喜欢使用任何内置逻辑(如果可用)。有什么指点吗?


最后我采用了以下解决方案。

public class UnitLocale {
    public static UnitLocale Imperial = new UnitLocale();
    public static UnitLocale Metric = new UnitLocale();

    public static UnitLocale getDefault() {
            return getFrom(Locale.getDefault());
    }
    public static UnitLocale getFrom(Locale locale) {
        String countryCode = locale.getCountry();
        if ("US".equals(countryCode)) return Imperial; // USA
        if ("LR".equals(countryCode)) return Imperial; // Liberia
        if ("MM".equals(countryCode)) return Imperial; // Myanmar
        return Metric;
    }
}

例如,像这样使用它。

if (UnitLocale.getDefault() == UnitLocale.Imperial) convertToimperial();

如果还需要转换方法,最好将它们添加到 UnitLocale 的子类中。我只需要detect是否使用英制单位并将其发送到服务器。

Using int与 java 对象相比,s 的性能提升极其有限,并且使代码更难以阅读。在java中比较两个引用的速度与比较两个引用的速度相当ints。使用对象还允许我们向UnitLocale类或子类,例如,convertToMetric 等。

如果您愿意,也可以使用枚举来代替。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用区域设置来检测是否使用英制单位 的相关文章

  • 带身份验证的 MediaPlayer RTSP 视频流

    我能够在未经授权的情况下从网络摄像机流式传输视频 但现在我需要在授权的情况下执行此操作 我发现很少有信息表明 Android 不支持 RTSP 身份验证 但我发现另一条信息表明 通过使用该方法添加标头 可以在 API 级别 14 中实现身份
  • RecyclerView每隔几个项目都是相同的 - 可扩展项目

    我的 recyclerView 有问题 我正在使用此布局来扩展 recyclerView 中的 cardView https github com AAkira ExpandableLayout https github com AAkir
  • 垂直翻转 Android Canvas

    有没有一种简单的方法可以在 Android 中翻转画布 我似乎找不到任何可以让我垂直翻转它的东西 这样 y 轴上的零就是手机屏幕的底部而不是顶部 如果解决方案不是特别快也没关系 因为我没有对画布进行任何计算密集的操作 提前致谢 Try ca
  • Android 应用程序主活动出现 ClassNotFoundException

    大多数设备都可以运行我的应用程序 但我收到此错误报告 java lang RuntimeException Unable to instantiate activity ComponentInfo com company app com c
  • 通过 Intent 从文件管理器中选择文件

    我想做的 我想获取文件字符串形式的路径 我通过 Android 文件管理器选择该路径 我拥有的 Intent intent new Intent Intent ACTION GET CONTENT intent setType startA
  • Firebase 云消息传递 - 如何验证令牌?

    我正在使用 Firebase Cloud Messaging FCM 并且每次在客户设备上生成新令牌时 都会根据下面的缩写代码 我将此新令牌发送到我的服务器数据库 云 并将其保存在其中 以便能够发送未来推送通知使用 CFM API 从服务器
  • 在应用程序之间共享自定义帐户验证器

    我有一个为使用自定义 AccountAuthenticator 的客户端构建的应用程序 它工作得非常好 并且满足了客户的需求 但是 这只是将使用相同身份验证管理器的应用程序集合中的第一个应用程序 这就是我不确定如何继续的地方 我无法知道任何
  • 通过覆盖滑动调整图像大小不会调整图像大小

    我在用着Glide下载并显示图像 但是 当我尝试调整图像大小时 它不会这样做 我得到随机大小 或者可能是图像的实际大小 这是我用于通过 Glide 加载的代码 Glide with context load file getUrl asBi
  • Android/三星 Galaxy S 模拟器

    有没有办法在三星银河模拟器或类似的东西上尝试我的项目 我的项目在 HTC Legend 上运行 但在该设备上崩溃了 我如何在 android eclipse 上设置三星 Galaxy s 我设置了 W800 854 2 2 AVD 但它可以
  • Eclipse Android 模拟器 - 键盘不工作

    我刚刚更新到最新的 SDK 版本 16 使用最新版本的 API 16 创建了新版本的 AVD 并且我的硬件键盘在模拟器上不再工作 甚至我的其他 avd 使用旧版本的 sdk 任何想法如何解决这一问题 您的 AVD 的 键盘支持 硬件属性是否
  • android device.getUuids 返回 null

    我正在尝试使用低功耗蓝牙 BLE 通过 Android 应用程序连接到 Arduino Uno 我正在 Android Studio 上进行开发 使用 Samsung Galaxy S4 和 Android 版本 5 0 1 进行测试我点击
  • 无法在 Android Studio 中运行项目

    当我尝试在 Android Studio 中运行我的项目时 我收到以下错误消息 Execution failed for task CricHQ dexDebug gt com android ide common internal Log
  • Android RxJava 2 JUnit 测试 - android.os.Looper 中的 getMainLooper 未模拟 RuntimeException

    我在尝试为正在使用的演示者运行 JUnit 测试时遇到 RuntimeExceptionobserveOn AndroidSchedulers mainThread 由于它们是纯 JUnit 测试而不是 Android 仪器测试 因此它们无
  • Android 报告“Error=Unable to find Instrumentation info for: ComponentInfo {}”

    stackoverflow 上有很多关于这个问题的主题 问题 例如错误 无法找到以下仪器信息 ComponentInfo https stackoverflow com q 21294945 513413 和其他网站 但使我的问题与其他网站
  • 使用Android Camera API,拍摄照片的方向始终未定义

    我使用相机API 拍摄的照片总是旋转90度 我想旋转它 所以首先我想知道图片的方向 这一点我被卡住了 我总是以两种方式得到未定义的方向 这是代码 Override public void onPictureTaken byte data C
  • 如何在 Android 应用程序退出之前进行一些清理?

    当我的 Android 应用程序终止时 是否有某种 onTerminate 方法可以进行一些清理 我想清除一些 SharedPreferences 我有一个活动 它保持几个数字的运行平均值 并将其存储在 SharedPreference 中
  • 活动构建变体没有测试工件

    我基于 调试 构建变体创建了一个名为 bitrise 的新构建类型 使用 debug 构建变体时 经过检测的 androidTests 构建并运行良好 但是当我切换到新的 bitrise 构建变体时 出现以下错误 Process finis
  • Android:在surfaceview上实现admob

    我有一个使用 SurfaceView 的小游戏形式的活动 下面是代码片段 我很困惑如何在 SurfaceView 上实现 admob 请建议 public class DroidzActivity extends Activity priv
  • Android 中用于过渡的自定义动画对象?

    我想用一些更奇特的东西来覆盖 Android 中的默认活动转换 我想做的事情不能用通常使用的 XML 集来完成 所以我不能使用overridePendingTransition因为它只接受对基于 XML 的动画资源的整数引用 我想做的是创建
  • 带有包含布局的导航抽屉布局

    我认为我的问题实际上很简单 但我不知道如何解决 有一个工作导航抽屉 代码如下

随机推荐

  • `Class of` 类型声明的含义是什么?

    在查看我的代码之一时 我陷入了如下的一项声明 TMyObjectClass class of TMyObject 我有点困惑 想知道这句话的含义是什么 作为TMyObjectClass声明之上没有任何声明 and TMyObject声明如下
  • ElasticSearch:未分配的分片,如何修复?

    我有一个有4个节点的ES集群 number of replicas 1 search01 master false data false search02 master true data true search03 master fals
  • 按下按钮刷新 tkinter 框架

    我正在使用来自的代码在 tkinter 中的两个框架之间切换 https stackoverflow com questions 7546050 switch between two frames in tkinter制作我的图形用户界面
  • 在 Swift 中将参数传递给选择器

    我正在构建一个应用程序来跟踪大学课程的阅读作业 每个 ReadingAssignment 都包含一个 Bool 值 指示读者是否已完成阅读作业 ReadingAssignments 被收集到 WeeklyAssignment 数组中 我希望
  • 具有相同标签的不同散点图标记

    我遇到了 类似 的问题Matplotlib 一个标签具有多个不同标记的图例 https stackoverflow com questions 9262307 matplotlib legend with multiple differen
  • 多个域的集成 Windows 身份验证

    我有一个针对域 A 用户的 Asp net 网站 具有集成 Windows 身份验证 现在B域的用户需要访问该网站 但域B用户访问网站时会弹出窗口输入验证信息 我的问题是 如何配置IIS或Windows Server 让B域用户像A域用户一
  • XAML 文件的智能感知 (Xamarin.Forms)

    在 Visual Studio 15 中 如何让 XAML Intellisense 适用于 Xamarin Forms 中的 XAML 文件 编辑 将答案与问题分开 这个解决方案是在这个论坛 https social msdn micro
  • 如何检测 Angular 中属性的更改

    我有一个带有子组件的组件timeline
  • $null 应该位于相等比较的左侧吗? (-eq 与数组)

    与同事讨论 应该 null是在支票的左边还是右边 有什么例子可以说明为什么这很重要吗 abc null null eq abc True abc eq null True All ok abc 6 7 null 8 9 null eq ab
  • 使用 NPOI 将图像插入 Excel 文件

    我正在使用 C 在 Visual Studio 2010 中编写一个程序 并且正在使用 NPOI 库 我正在尝试将图像插入到 Excel 文件中 我尝试了两种不同的方法 但都不起作用 Method 1 HSSFPatriarch patri
  • 服务重启后 Docker 节点宕机

    我的服务器似乎空间不足 并且某些已部署的 Docker 堆栈出现了一些问题 我花了一段时间才弄清楚 但最终我做到了 并删除了一些容器和图像以释放一些空间 我能够跑service docker restart它起作用了 然而 也存在一些问题
  • 通过java应用程序发送附有excel文件的电子邮件 - 不起作用

    我试图通过Java应用程序发送一封邮件 其中包含excel文件作为附件 而不实际创建该文件 excel文件中的数据来自数据库 我可以发送带有附件的邮件 但文件是文本 制表符分隔 格式 但我希望该文件仅为 Excel 格式 请帮忙 以下是代码
  • 在 Java 调试器中,如何忽略从未通过我的代码的异常

    我目前正在使用 IntelliJ IDEA 进行 Java 开发 但我也对针对其他 IDE 的答案或调试 Java 代码的一般概念感兴趣 因为我在许多 IDE 中都错过了这个功能 所以我不确定在从其他语言转移我的调试习惯时是否错过了工作流程
  • Google Dataflow(Apache Beam)JdbcIO批量插入mysql数据库

    我正在使用 Dataflow SDK 2 X Java API Apache Beam SDK 将数据写入 mysql 我创建了基于管道Apache Beam SDK 文档 https beam apache org documentati
  • 使用 window.open() 的多个窗口

    众所周知 如果您单击嵌入其中的提交按钮onClick windown open 这将打开一个新窗口 其中包含您指定的所有可爱属性 但是 如果继续单击父窗口并再次单击 提交 按钮而不关闭先前的弹出窗口 则同一窗口将被新数据覆盖 现在我需要一种
  • 词汇量和嵌入维度之间的首选比例是多少?

    例如使用时gensim word2vec或用于训练嵌入向量的类似方法我想知道什么是好的比率 或者嵌入维度与词汇量之间是否有首选比率 随着更多数据的出现 这种情况会如何变化 由于我仍在讨论这个主题 因此在训练嵌入向量时如何选择合适的窗口大小
  • 哪些 OpenGL ES 2.0 纹理格式可进行颜色、深度或模板渲染?

    From OpenGL ES 2 0 规范 http www khronos org registry gles specs 2 0 es full spec 2 0 25 pdf第 4 4 5 节 表 4 5 中未列出的格式 包括压缩的内
  • 如何将两个日期列表合并为一系列日期间隔?

    我有开始日期列表和结束日期列表 他们已经排序了 start dates datetime date 2009 11 5 datetime date 2009 11 13 datetime date 2009 11 25 datetime d
  • 实体框架:如何在提交之前检查值是否存在

    我正在使用存储库模式 我有一个国家 地区存储库 我正在使用服务来提交该存储库 我应该在哪里检查该国家 地区是否已存在于数据库中 我会抛出异常吗 有没有一种方法可以在一次数据库调用中做到这一点 如果不存在则检查并插入 如果可以的话 可以在服务
  • 使用区域设置来检测是否使用英制单位

    我正在开发一个应用程序 想要以厘米 cm 或英寸 为单位显示长度 有没有办法从区域设置中选择正确的单位 无论如何 我还将输入一个选项 以便用户可以覆盖区域设置 美国 利比里亚和缅甸应使用英制单位 而世界其他国家应使用正常单位 一种方法是将此