0

我正在学习一些 java 来编写简单的 android 应用程序。目前我正在研究一个温度转换器,如果我没有为我的输入输入一个值,就会遇到问题。

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");

Wheretempfromtempto是对应于用于转换的温度单位的字符串。基本上,我正在检查 if degreesin.equals(null),其中 degreein 是输入值,然后将字符串设置tempto为“请输入值”。然后底部的文本视图将变为“请输入值”。

我不知道我做错了什么,大约两天前我才开始使用java,所以这可能是一些愚蠢的事情:P

4

3 回答 3

1

试试这个:

Double degreesin = null

if(ettemp != null && ettemp.getText() != null && !ettemp.getText().equals("")){
    degreesin = Double.parseDouble(ettem.getText());
}
于 2013-03-28T07:36:12.173 回答
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
}
于 2013-03-28T07:41:34.707 回答
0

改变你的

Double degreesin = Double.parseDouble(ettemp.getText().toString());

Double degreesin = 0;

if(!ettemp.getText().toString().equals("")){
    degreesin = Double.parseDouble(ettemp.getText().toString());
}

您得到的错误是由将空解析StringDouble. 上面将检查是否为空String,并且仅在它不为空时才解析该值。

于 2013-03-29T04:32:33.913 回答