0

シンプルな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");

およびはtempfromtempto変換用の温度単位に対応する文字列です。基本的にはdegreesin.equals(null)、degreesin が入力値である場合、文字列temptoを「値を入力してください」に設定することを確認しています。すると、下部のテキスト ビューが「値を入力してください」に変わります。

私は何が間違っているのか理解できません.2日前に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

そのように度の値を設定していると仮定します

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());
}

Stringあなたが得るエラーは、空のto を解析することによって引き起こされますDouble。上記は空をチェックし、空Stringでない場合にのみ値を解析します。

于 2013-03-29T04:32:33.913 に答える