我有一个简单的转换器应用程序。纺纱机具有相同的单位。我认为我正确地编写了所有内容,但只有当我评论其余代码并仅使用第一种情况时,它才有效,我将立方毫米(mm3)转换为第二个微调器中的任何单位。当我也包含其他案例时,它会写入不正确的值。
要了解的事情:" valv1"是一个editText,我输入数字值和" valv3"是简单的textView我在哪里写这个值。我不想让用户编辑结果值,因为我不知道如何进行双向转换。
这是我从我的微调器定义我的变量的位置,我知道我可以使用" pos1"和" pos2"直接,但这对我来说更容易,我是一个初学者。
switch (a){
case 1: if(b==1){ double mm31= Double.valueOf(valv1.getText().toString());
valv3.setText(String.valueOf(mm31));
}
if(b==2){ double mm31= Double.valueOf(valv1.getText().toString());
double cm3= mm31*0.001;
valv3.setText(String.valueOf(cm3));
}
if(b==3){ double mm31= Double.valueOf(valv1.getText().toString());
double dm3= mm31*0.000001;
valv3.setText(String.valueOf(dm3));
}
if(b==4){ double mm31= Double.valueOf(valv1.getText().toString());
double m3= mm31*0.000000001;
valv3.setText(String.valueOf(m3));
}
if(b==5){ double mm31= Double.valueOf(valv1.getText().toString());
double ml= mm31*0.001;
valv3.setText(String.valueOf(ml));
}
if(b==6){ double mm31= Double.valueOf(valv1.getText().toString());
double cl= mm31*0.0001;
valv3.setText(String.valueOf(cl));
}
if(b==7){ double mm31= Double.valueOf(valv1.getText().toString());
double dl= mm31*0.00001;
valv3.setText(String.valueOf(dl));
}
if(b==8){ double mm31= Double.valueOf(valv1.getText().toString());
double l= mm31*0.000001;
valv3.setText(String.valueOf(l));
}
if(b==9){ double mm31= Double.valueOf(valv1.getText().toString());
double hl= mm31*0.00000001;
valv3.setText(String.valueOf(hl));
}
这会处理我的第一个微调器中的第一个值,它工作正常。但是当我添加其余代码时,会出现问题,对于第一个微调器的其他位置
case 2:
if(b==1){ double cm31= Double.valueOf(valv1.getText().toString());
double mm32= cm31*1000;
valv3.setText(String.valueOf(mm32));
}
if(b==2){ double cm31= Double.valueOf(valv1.getText().toString());
double cm32= cm31*1;
valv3.setText(String.valueOf(cm32));
}
if(b==3){ double cm31= Double.valueOf(valv1.getText().toString());
double dm3= cm31*0.001;
valv3.setText(String.valueOf(dm3));
}
if(b==4){ double cm31= Double.valueOf(valv1.getText().toString());
double m3= cm31*0.000001;
valv3.setText(String.valueOf(m3));
}
if(b==5){ double cm31= Double.valueOf(valv1.getText().toString());
double ml= cm31*1;
valv3.setText(String.valueOf(ml));
}
if(b==6){ double cm31= Double.valueOf(valv1.getText().toString());
double cl= cm31*0.1;
valv3.setText(String.valueOf(cl));
}
if(b==7){ double cm31= Double.valueOf(valv1.getText().toString());
double dl= cm31*0.01;
valv3.setText(String.valueOf(dl));
}
if(b==8){ double cm31= Double.valueOf(valv1.getText().toString());
double l= cm31*0.001;
valv3.setText(String.valueOf(l));
}
if(b==9){ double cm31= Double.valueOf(valv1.getText().toString());
double hl= cm31*0.00001;
valv3.setText(String.valueOf(hl));
}
case 3:
if(b==1){ double dm31= Double.valueOf(valv1.getText().toString());
double mm32= dm31*1000000;
valv3.setText(String.valueOf(mm32));
}
if(b==2){ double dm31= Double.valueOf(valv1.getText().toString());
double cm32= dm31*1000;
valv3.setText(String.valueOf(cm32));
}
if(b==3){ double dm31= Double.valueOf(valv1.getText().toString());
double dm3= dm31*1;
valv3.setText(String.valueOf(dm3));
}
if(b==4){ double dm31= Double.valueOf(valv1.getText().toString());
double m3= dm31*0.001;
valv3.setText(String.valueOf(m3));
}
if(b==5){ double dm31= Double.valueOf(valv1.getText().toString());
double ml= dm31*1000;
valv3.setText(String.valueOf(ml));
}
if(b==6){ double dm31= Double.valueOf(valv1.getText().toString());
double cl= dm31*100;
valv3.setText(String.valueOf(cl));
}
if(b==7){ double dm31= Double.valueOf(valv1.getText().toString());
double dl= dm31*10;
valv3.setText(String.valueOf(dl));
}
if(b==8){ double dm31= Double.valueOf(valv1.getText().toString());
double l= dm31*1;
valv3.setText(String.valueOf(l));
}
if(b==9){ double dm31= Double.valueOf(valv1.getText().toString());
double hl= dm31*0.01;
valv3.setText(String.valueOf(hl));
}
它继续......直到最后一个案例 - 案例9
我的微调器值在这里:
<string-array name="volume1">
<item>mm3</item>
<item>cm3</item>
<item>dm3</item>
<item>m3</item>
<item>ml</item>
<item>cl</item>
<item>dl</item>
<item>l</item>
<item>hl</item>
</string-array>
答案 0 :(得分:0)
看起来您错误地编写了switch语句。 你应该在每个案例的最后都有一个中断声明。 在这里查看java switch语句的语法: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html