2017-05-27 54 views
-4

這是我的第一個問題在這裏 我正在寫一個android計算器應用程序,但我有幾個問題 我想做一個功能,其中一旦任何操作按鈕是點擊(+, - /,*)計算器應該立即顯示結果,而不是點擊相同的按鈕,同時你可以做多個操作,我成功地使它只用於一個操作(+),但我可以不能讓它與其他操作一起工作即時計算沒有點擊相同的按鈕,並使用多個操作

我使它成爲數字按鈕 這裏是第3個按鈕的代碼,maddition和msubstract是加上點擊監聽器的按鈕

​​

Additon上點擊收聽

buttonAdd.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if (TextUtils.isEmpty(edt1.getText().toString())) { 
        return; 
       } 


       String str = edt1.getText().toString(); 


       if (isDouble(str)) { 

        if (edt1 == null) { 
         edt1.setText(""); 
        } else { 
         mValueOne = Float.parseFloat(edt1.getText() + ""); 
         tv.setText(tv.getText() + "+"); 
         mAddition = true; 
         edt1.setText(null); 

        } 

       } else return; 
      } 
     }); 

這裏是我的源代碼 https://pastebin.com/7QaDvx9D

錯誤日誌貓 12月5日至27日:33:55.565 24916-24921/ispam.mark_06 I /藝術:部分代碼緩存收集,代碼= 17KB,數據= 24KB 05-27 12:33:55.565 24916-24921/ispam.mark_06 I/art:代碼緩存收集後代碼= 17KB,數據= 24KB 012-05-27 12:33:55.565 24916-24921/ispam.mark_06 I/art:Inc將代碼緩存容量增加到128KB 05-27 12:33:56.931 24916-24916/ispam.mark_06 E/SpannableStringBuilder:SPAN_EXCLUSIVE_EXCLUSIVE跨度不能爲零長度 05-27 12:33:56.931 24916-24916/ispam.mark_06 E/SpannableStringBuilder:SPAN_EXCLUSIVE_EXCLUSIVE跨度不能具有零長度 05-27 12:33:57.375 24916-24916/ispam.mark_06 E/SpannableStringBuilder:SPAN_EXCLUSIVE_EXCLUSIVE跨度不能具有零長度 05-27 12:33:57.375 24916-24916/ispam.mark_06 E/SpannableStringBuilder:SPAN_EXCLUSIVE_EXCLUSIVE跨度不能爲零長度 05-27 12:33:58.948 24916-24916/ispam.mark_06 E/SpannableStringBuilder:SPAN_EXCLUSIVE_EXCLUSIVE跨度不能具有零長度 05-27 12:33:58.949 24916-24916/ispam.mark_06 E/SpannableStringBuilder:SPAN_EXCLUSIVE_EXCLUSIVE跨度不能有零長度 05-27 12:33:59.931 24916-24916/ispam.mark_06 D/AndroidRuntime:關閉虛擬機 05-27 12:33:59.933 24916-24916/ispam.mark_06 E/AndroidRuntime:致命例外:main 過程: ispam.mark_06,PID:24916 java.lang.NumberFormatException:對於輸入字符串:「3-3-3」 at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306) at java.lang.Float.parseFloat (Float.java:459) at ispam.mark_06.Calculator $ 4.onClick(Calculator.java:182) at android.view.View.performClick(View.java:5685) at android.view.View $ PerformClick。在android上運行(View.java:22481) 。 os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:241) at android.app。 ActivityThread.main(ActivityThread.java:6274) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

任何幫助在此先感謝?

回答

0

以下錯誤我認爲原因是你的代碼試圖將字符串「3-3-3」解析爲浮點值,從而導致錯誤。 爲了避免此錯誤,您可以在計算出答案並顯示後清除編輯文本,即do tv.setText(「」);在顯示結果之後,舊操作員仍然不會附加到edittext文本。

+0

感謝抱歉,對於遲到的回覆,我想我會堅持第三方解析器謝謝謝謝 –