2017-05-27 4 views
-4

これは私の最初の質問です 私はアンドロイド電卓アプリケーションを書いていますが、私はほとんど問題がありません 一度操作ボタン(+、 - /、*)をクリックすると計算結果が即座に表示され、同じボタンをクリックすると同時に2つ以上の操作を行うことができます。等価ボタンをクリックせずに複数のオペレータを使用しないで瞬時に計算

ここでは数字3のボタン、madditionとmsubstractはクリックリスナーのプラスボタンです

33:55.565 24916から24921/ispam.mark_06 I /芸術クリックリスナーここ

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; 
      } 
     }); 

上 ​​

Additonは、私のソースコード https://pastebin.com/7QaDvx9D

、エラー・ログ・猫 5月27日12であります:部分コードキャッシュコレクション、コード= 17KB、データ= 24KB 05-27 12:33:55.565 24916-24921/ispam.mark_06 I/art:コードキャッシュコレクション後、コード= 17KB、データ= 24KB 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:VMシャットダウン 05-27 12:33:59.933 24916-24916/ispam.mark_06 E/AndroidRuntime:致命的除外:メイン プロセス: 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) ispam.mark_06.Calculator $ 4.onClick(Calculator.java:182) at android.view.View.performClick(View.java:5685) android.view.View $ PerformClick。アンドロイドで(View.java:22481) を実行します。 os.Handler.handleCallback(Handler.java:751) (andler.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:241) android.appにあります。 ActivityThread.main(ActivityThread.java:6274) at java.lang.reflect.Method.invoke(ネイティブメソッド) 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( "");古い演算子がまだ編集テキストに追加されないように結果を表示した後。

+0

お返事ありがとうございます。私は第三者のパーサーにとにかく忠告するつもりだと思います –

関連する問題