我是Android應用程序開發新手,只是爲了好玩,我試圖用自定義鍵盤創建計算器應用程序。我幾乎可以在我的應用程序中使用所有功能。只是最後一步不行。Android雙變量計算正在崩潰應用程序
所以,當我嘗試用+,計算 - ,*或/最後一個字符串,我得到會是什麼樣子
1 + 2 * 3/1 - 2(實際上以字符串格式)
和我通過轉換
雙d =新雙人在變量存儲該(字符串 「1 + 2 * 3/1 - 2」)
如果我只是打印出來具有正常的java,System.out.println(d);
我得到「5.0」作爲答案。我不介意這個答案。但是當我嘗試打印下面的代碼時,
((Button)findViewById(R.id.cal_EQ)).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if(inputKB.getText().toString() != null && inputKB.getText().toString().length() > 0) {
calcDisplay.setText(String.valueOf(new Double((inputKB.getText().toString()))));
}
}
});
其崩潰的應用程序。那麼我應該怎麼做才能得到像5.0這樣的結果並將其顯示到scree?
感謝您的時間和事先的幫助。 )
02-10 19:18:46.789 29734-29734/io.github.xyz.calc E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: io.github.xyz.calc, PID: 29734
java.lang.NumberFormatException: Invalid double: "5 + 5"
at java.lang.StringToReal.invalidReal(StringToReal.java:63)
at java.lang.StringToReal.parseDouble(StringToReal.java:269)
at java.lang.Double.parseDouble(Double.java:295)
at java.lang.Double.<init>(Double.java:136)
at io.github.xyz.calc.RegCalcActivity$7.onClick(RegCalcActivity.java:118)
at android.view.View.performClick(View.java:4480)
at android.view.View$PerformClick.run(View.java:18686)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5872)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
at dalvik.system.NativeStart.main(Native Method)
02-10 19:18:49.002 29734-29734/io.github.xyz.calc D/Process﹕ killProcess, pid=29734
02-10 19:18:49.002 29734-29734/io.github.xyz.calc D/Process﹕ com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException:131 java.lang.ThreadGroup.uncaughtException:693 java.lang.ThreadGroup.uncaughtException:690
02-10 19:18:49.352 30138-30138/io.github.xyz.calc I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: MINGHSUC_AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.047+PATCH[ES]_msm8960_refs/tags/AU_LINUX_ANDROID_KK_2.7_RB1.04.04.02.007.047__release_ENGG()
OpenGL ES Shader Compiler Version: 17.01.12.SPL
這是logcat的錯誤日誌和管線118
calcDisplay.setText(String.valueOf(new Double((inputKB.getText().toString()))));
感謝名單;)
,你可以看到'「5 + 5」'是無效的數量 – 2015-02-11 01:44:47
所以,我應該怎麼辦呢?因爲你可以看到我將字符串轉換爲雙倍。 – 2015-02-11 01:46:42