很长时间的解决方案(if语句)

时间:2015-05-01 20:39:09

标签: android

我是编程和Android开发的新手,我正在尝试制作长度单位转换的应用。我使用了两个微调器(从单元到单元),所以我需要检查用户在两个微调器中选择了什么,然后返回值。我的问题是如果声明我已经很长,所以我想知道是否有更好的解决方案。

抱歉我的英语很差,我希望你明白我的意思。

这是长度函数:

public double lengthConversion() {
    double res = 0.0;

    num = Double.parseDouble(editTextNum.getText().toString());

    // first spinner is mm, second spinner is mm
    if (posFrom == 0 && posTo == 0) {
        res = num;
    } else if (posFrom == 0 && posTo == 1) { //second spinner is cm
        res =  num / 10;
    } else if (posFrom == 0 && posTo == 2) { // dm
        res =  num / 100;
    } else if (posFrom == 0 && posTo == 3) { // m
        res =  num / 1000;
    } else if (posFrom == 0 && posTo == 4) { // km
        res =  num / 1000000;
    }

    if (posFrom == 1 && posTo == 0) {
        ....
    } else if (posFrom == 1 && posTo == 1) {
        ....
    } else if (posFrom == 1 && posTo == 2) {
        ....
    } else if (posFrom == 1 && posTo == 3) {
        ....
    } else if (posFrom == 1 && posTo == 4) {
        ....
    }

    .
    .
    .


    if (posFrom == 4 && posTo == 0) {
        ...
    } else if (posFrom == 4 && posTo == 1) {
        ...
    } else if (posFrom == 4 && posTo == 2) {
        ...
    } else if (posFrom == 4 && posTo == 3) {
        ...
    } else if (posFrom == 4 && posTo == 4) {
        ...
    }

    return res;
  }

这就是我使用的字符串数组:

<string-array name="array_length">
    <item>mm</item>
    <item>cm</item>
    <item>dm</item>
    <item>m</item>
    <item>km</item>
</string-array>

1 个答案:

答案 0 :(得分:0)

您可以使用基本单元(例如,仪表)进行枚举。

然后你可以将每个其他单位(kms,mms等)作为该枚举的字段。我打算举一个例子,但有一个答案可以做得很好:

https://stackoverflow.com/a/17549248/447842