I am new for programming and android development, I'm trying to make an app for length unit conversions. I used two spinner(from unit and to unit), so I need to check what user have selected in the both spinner and then return the value. My problem is I have got very long if statement, so I wonder if there is better solution for this.
Sorry for my poor english, I hope you understand what I mean.
here is the function for length:
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;
}
and that is the string array I use:
<string-array name="array_length">
<item>mm</item>
<item>cm</item>
<item>dm</item>
<item>m</item>
<item>km</item>
</string-array>