2016-11-08 48 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设置为该值。 –