badd.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String s1 = e1.getText()+"hi".toString();
Log.i("add",s1);
if(e1.getText()==null)
{
Toast.makeText(getApplicationContext(), "Please Enter A Number First", Toast.LENGTH_SHORT).show();
}
else
{
num1 = Float.parseFloat(e1.getText()+"");
i=1;
e1.setText(null);
}
}
});
我正在製作一個簡單的計算器應用程序,其中有一個Button badd(用於執行添加的按鈕)和一個EditText e1。點擊此按鈕時;首先會檢查文本框是否爲空或者是否爲空,它將顯示一個Toast告訴用戶輸入一個數字。如果已經輸入了該號碼,該號碼將被存儲在變量num1中,並且文本框將變爲空,以便用戶可以輸入另一個號碼並且將在這兩個號碼上執行添加。由於運行時錯誤而無法顯示Toast
當我輸入一個數字,並按下badd添加成功完成。但我的問題是,當我離開編輯文本框爲空(空)我得到一個運行時錯誤,而不是顯示吐司它顯示錯誤「您的應用程序不幸關閉」。
我創建了一個字符串變量S1也是發生在E1輸入的字符串和concate與另一串「喜」這個字符串因此,如果字符串是空的,它會至少顯示日誌貓一喜消息。它是檢查匿名內部類是否有錯誤。但它清除了沒有問題的匿名內部類和其他塊。
我認爲這個錯誤在if塊中。請幫幫我!以下是我的LogCat錯誤,這將幫助您找到錯誤。
03-05 16:37:00.601: I/add(1569): hi
03-05 16:37:00.663: E/AndroidRuntime(1569): FATAL EXCEPTION: main
03-05 16:37:00.663: E/AndroidRuntime(1569): java.lang.NumberFormatException: Invalid float: ""
03-05 16:37:00.663: E/AndroidRuntime(1569): at java.lang.StringToReal.invalidReal(StringToReal.java:63)
03-05 16:37:00.663: E/AndroidRuntime(1569): at java.lang.StringToReal.parseFloat(StringToReal.java:289)
03-05 16:37:00.663: E/AndroidRuntime(1569): at java.lang.Float.parseFloat(Float.java:300)
03-05 16:37:00.663: E/AndroidRuntime(1569): at com.example.mycalculator.MainActivity$13.onClick(MainActivity.java:171)
03-05 16:37:00.663: E/AndroidRuntime(1569): at android.view.View.performClick(View.java:4202)
03-05 16:37:00.663: E/AndroidRuntime(1569): at android.view.View$PerformClick.run(View.java:17340)
03-05 16:37:00.663: E/AndroidRuntime(1569): at android.os.Handler.handleCallback(Handler.java:725)
03-05 16:37:00.663: E/AndroidRuntime(1569): at android.os.Handler.dispatchMessage(Handler.java:92)
03-05 16:37:00.663: E/AndroidRuntime(1569): at android.os.Looper.loop(Looper.java:137)
03-05 16:37:00.663: E/AndroidRuntime(1569): at android.app.ActivityThread.main(ActivityThread.java:5039)
03-05 16:37:00.663: E/AndroidRuntime(1569): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 16:37:00.663: E/AndroidRuntime(1569): at java.lang.reflect.Method.invoke(Method.java:511)
03-05 16:37:00.663: E/AndroidRuntime(1569): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-05 16:37:00.663: E/AndroidRuntime(1569): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-05 16:37:00.663: E/AndroidRuntime(1569): at dalvik.system.NativeStart.main(Native Method)
問題所以,你應該通過捕獲該異常並做別的事情,而不是處理這種情況在這裏'String s1 = e1.getText()+「hi」.toString();''hi'不能解析float.It'string'不是一個值 –
這行正常執行,即使我評論這個線我得到相同的錯誤。這條線沒有錯誤 –
logcat完全告訴你**問題是什麼:'NumberFormatException:無效的float:「''' –