2016-11-08 51 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;' 這個代碼被分配0.0F值到BS '如果{ BS =浮動(basicSalary.getText()的toString()等於( 「」)==假。)。 parseFloat(basicSalary.getText()的toString()); }'此代碼說如果basicSalary edittext框的內容不爲空,則將bs設置爲浮動basicSalary的內容。 對嗎? – kaikai

+0

這是說1)爲bs設置默認值0.0)2)如果'basicSalary'不是空白,將其值轉換爲浮點數並將bs設置爲該值。 –