创建“转换器”类以获取度量标准

时间:2016-03-10 08:56:46

标签: java android locale

我正在开发一个应用来获取用户信息,如体重和身高。

根据Locale,该应用程序显示两个或三个EditText:

  • 如果Locale是US
  • ,则为三(磅,英尺,英寸)
  • 其他情况下的两(千克,厘米)(法国,意大利,西班牙等)

在这两种情况下,我都可以从每个EditText中获取一个int值或一个String值。

我想创建一个Java类,允许我通过两个(或三个)值从英制系统切换到公制系统(反之亦然)。

2 个答案:

答案 0 :(得分:1)

我们刚刚针对Java(与Android兼容),JavaScript和C#发布的UnitOf库非常适合在任何度量单位之间转换为公制和英制:

//Mass as one liners
double kgToLb = new UnitOf.Mass().fromKilograms(5).toPounds();  //11.023122100918888
double lbToKg = new UnitOf.Mass().fromPounds(5).toKilograms();  //2.26796

//Length as a stateless variable
UnitOf.Length ft = new UnitOf.Length().fromFeet(5);
double ftToCm = ft.toCentimeters();  //152.4
double ftToIn = ft.toInches(); //60

有超过20个完整的度量单位,您永远不需要知道任何转换因子! UnitOf还可以解析数据类型,在分数之间进行转换,并允许进行自定义UnitOf测量。

答案 1 :(得分:0)

您有两种基本方式:

  1. 如果你很懒,请试试javax.measure library
  2. 如果您不懒,请编写自己的Converter课程:

    public class Converter {
    
       public static double feetToCm(double feet) {
          return feet * 30.48;
       }
    
       public static double poundsToKg(double pounds) {
          return pounds * 0.45359237;
       }
    
       // etc.
    
    }
    

    用法:

    double myPounds = 5.5;
    doube myKilos = Converter.poundsToKg(myPounds);