2016-11-08 5 views
-2

これは助けが必要です! 空のエディットテキストのためにトーストを作ろうとしていて、フロートでエラーが発生し続けることが判明しました。空のフロートでアプリケーションがクラッシュするedittext

calcBtn.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 


    **float bs = Float.parseFloat(basicSalary.getText().toString());** 
    float tw = Float.parseFloat(totalAllowance.getText().toString()); 
    float mob = String spinTEXT = spinner.getSelectedItem().toString(); 

if (spinner.getSelectedItem().equals("Select age group")){ 
     Toast.makeText(sghospitalbonuscalculator.this, "Test 123", 
       Toast.LENGTH_SHORT).show(); 
} 

if (basicSalary.getText().toString().equals("")){ 
     Toast.makeText(sghospitalbonuscalculator.this, "Test 321", 
       Toast.LENGTH_SHORT).show(); 
} 

これはエラーです::

これはコードです

を教えてください乾杯用として

java.lang.NumberFormatException: Invalid float: "" 
at java.lang.StringToReal.invalidReal(StringToReal.java:63) 
at java.lang.StringToReal.parseFloat(StringToReal.java:308) 
at java.lang.Float.parseFloat(Float.java:306) 
at sg.self.wser.bonuscalc.bonuscalcu$4.onClick(bonuscalcu.java:96) 
at android.view.View.performClick(View.java:4756) 
at android.view.View$PerformClick.run(View.java:19749) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

The bonuscalc.java:96 is referring to this line of code:

float bs = Float.parseFloat(basicSalary.getText().toString());

、私は(.equalsを変更しようとしました"")を.equals( "")、.equals(null)、.isEmptyに変換しますが、やはり動作しません。

お知らせください! ありがとうございます!

編集されたバージョン:

コード:

if (basicSalary.getText().toString().equals(0.0)){ 
      Toast.makeText(sghospitalbonuscalculator.this, "Test 321", 
        Toast.LENGTH_SHORT).show(); 
    } 

エラーが示さ:

java.lang.NumberFormatException: Invalid float: "" 
+0

にそれを変えることができますか? –

+0

hmmmmmmm 0.0f?間違っているなら謝罪してください、私を教えてください! – kaikai

+0

**間違った** 'java.lang.NumberFormatException:無効な浮動小数点:" "' –

答えて

0

あなたの入力が空白で、かどうかをテストしたいので、値を割り当てる場合は0.0

float bs = 0.0f; 
if (basicSalary.getText().toString().equals("") == false){ 
     bs = Float.parseFloat(basicSalary.getText().toString()); 
} 

テストでは、このToast

if (basicSalary.getText().toString().equals("")){ 
     Toast.makeText(sghospitalbonuscalculator.this, "Test 321", 
       Toast.LENGTH_SHORT).show(); 
} 

のために多分あなたは空きスペースが表すものをフロート数思います

if (bs == 0.0f){ 
     Toast.makeText(sghospitalbonuscalculator.this, "Test 321", 
       Toast.LENGTH_SHORT).show(); 
} 
+0

あなたの質問は何ですか? –

+0

'フロートBS =は0.0f;(。。basicSalary.getText()のtoString()に等しい( "")== false)を' このコードは '場合をBSには0.0f値を割り当てるれる{ BS =フロート。 parseFloat(basicSalary.getText()。toString()); } 'このコードは、basicSalary edittextボックスの内容が空でない場合、bsをbasicSalaryの内容を浮動させるように設定すると言っています。 私は正しいですか? – kaikai

+0

これは、1) 'basicSalary'が空白でない場合、デフォルト値0.0をbsに設定して2)、その値をfloatに変換し、bsをこの値に設定することです。 –

関連する問題