使用Java创建Android应用程序有困难
我正在学习一些java来编写简单的android应用程序。目前我正在研究一个温度转换器,如果我没有为输入输入值,就会遇到问题使用Java创建Android应用程序有困难,java,android,eclipse,Java,Android,Eclipse,我正在学习一些java来编写简单的android应用程序。目前我正在研究一个温度转换器,如果我没有为输入输入值,就会遇到问题 else if(tempfrom.equals("Rankine")){ if(tempto.equals("Fahrenheit")){ degreesout = degreesin - 459.67; } else if(tempto.equals("Celsius")){
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
和tento
是对应于转换温度单位的字符串。基本上,我正在检查如果degreesin.equals(null)
,其中degreesin是输入值,然后将字符串tento
设置为“请输入值”。然后底部的文本视图将更改为“请输入值”
我不知道我做错了什么,大约两天前我才开始使用java,所以这可能是一件愚蠢的事情:p试试这个:
Double degreesin = null
if(ettemp != null && ettemp.getText() != null && !ettemp.getText().equals("")){
degreesin = Double.parseDouble(ettem.getText());
}
假设您这样设置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
}
换衣服
Double degreesin=Double.parseDouble(ettemp.getText().toString())代码>
到
获取的错误是由于将空字符串
解析为双精度
引起的。上面的方法将检查是否有空的字符串
,并且仅在值不为空时才分析该值。不要使用equals方法检查null。使用“degreesin==null”这仍然不起作用。下面是如何定义degreesin的:Double degreesin=Double.parseDouble(ettemp.getText().toString())代码>你能告诉我们你得到的错误吗?如果可能的话,张贴日志。这里有显示错误的部分。还有什么需要扩展的“…14更多”部分吗?我已经尝试将日志导出到文本文件,但它仍然以这种方式显示。这就是degreesin的设置方式:Double degreesin=Double.parseDouble(ettemp.getText().toString())
它的类型是Double,所以我把你的代码改为if(degreesin.toString().trim().length()=0){//处理一个空输入}
,我仍然得到相同的类型:03-28 08:52:28.201:E/AndroidRuntime(13806):原因:java.lang.NumberFormatException:无效的双精度:“”
按如下方式分配degreesin:double degreesin=null;请尝试{degreesin=Double.parseDouble(ettemp.getText().toString());}catch(NumberFormatException nfe){//empty input}
Double degreesin = 0;
if(!ettemp.getText().toString().equals("")){
degreesin = Double.parseDouble(ettemp.getText().toString());
}