我正在学习一些用于编写简单的Android应用程序的java。目前我正在研究温度转换器,如果我没有为输入输入值,就会遇到问题。
else if(tempfrom.equals("Rankine")){
if(tempto.equals("Fahrenheit")){
degreesout = degreesin - 459.67;
}
else if(tempto.equals("Celsius")){
degreesout = (degreesin - 491.67)*(5./9.);
}
else if(tempto.equals("Kelvin")){
degreesout = degreesin*(5./9.);
}
else{
degreesout = degreesin;
}
}
else if(degreesin.equals(null)){
tempto = "Please Enter a Value.";
}
TextView answer = (TextView) findViewById(R.id.tvdegreesout);
TextView units = (TextView)findViewById(R.id.tvUnit);
units.setText(tempto);
answer.setText(degreesout.toString() + " degrees");
其中tempfrom
和tempto
是与转换温度单位对应的字符串。基本上,我正在检查如果degreesin.equals(null)
,其中degreesin是输入值,则将字符串tempto
设置为“请输入值”。然后底部的文本视图将更改为“请输入值。”
我无法弄清楚我做错了什么,而且我刚刚在两天前开始使用java,所以它可能是愚蠢的事情:P
答案 0 :(得分:1)
试试这个:
Double degreesin = null
if(ettemp != null && ettemp.getText() != null && !ettemp.getText().equals("")){
degreesin = Double.parseDouble(ettem.getText());
}
答案 1 :(得分:0)
假设您正在将degreesin值设置为
String degreesin = txtDegreesIn.getText().toString();
您必须按如下方式检查空值:
if (degreesin.trim().length() == 0){
// handle an empty input
}
这也将禁止输入“”。
回答你的意见:
Double degreesin = null;
try {
degreesin = Double.parseDouble(ettemp.getText().toString());
} catch (NumberFormatException nfe){
// empty/invalid input
}
答案 2 :(得分:0)
更改您的
Double degreesin = Double.parseDouble(ettemp.getText().toString());
到
Double degreesin = 0;
if(!ettemp.getText().toString().equals("")){
degreesin = Double.parseDouble(ettemp.getText().toString());
}
您获得的错误是由解析空String
到Double
引起的。上面将检查一个空的String
,并且只会解析该值是否为空。