2016-08-16 3 views
0

私はシンプルなタイマーを持っており、それはonTickメソッドで動作しています。分と秒の2つのTextBoxがありますが、そのうちの1つが空のときにクラッシュしました。この2つのTextBoxをどのように管理できますか? これはStart TimerボタンのonClickメソッドのコードです。アンドロイドタイマーで分と秒を取得

@Override 
public void onClick(View view) { 
    switch (view.getId()) { 
     case R.id.startTimer: 
      //If CountDownTimer is null then start timer 
      if (countDownTimer == null) { 
       String getMinutes = minutes.getText().toString();//Get minutes from Minutes EditText 
       String getSeconds = seconds.getText().toString();//Get seconds from Seconds EditText 
       //Check validation over EditText 
       if ((!getMinutes.equals("") && getMinutes.length() > 0)) { 
        int noOfMinutes = Integer.parseInt(getMinutes) * 60 * 1000;//Convert minutes into milliseconds 
        int noOfSeconds=Integer.parseInt(getSeconds) * 1000;//Convert Seconds into milliseconds 

        time = noOfMinutes + noOfSeconds; 
        startTimer(time);//start countdown 
        startTimer.setText(getString(R.string.stop_timer));//Change Text 

       } else 
        Toast.makeText(MainActivity.this, "Please enter no. of Minutes.", Toast.LENGTH_SHORT).show();//Display toast if Minute EditText is empty 
      } else { 
       //else stop timer and change text 
       stopCountdown(); 
       startTimer.setText(getString(R.string.start_timer)); 
      } 
      break; 
     case R.id.resetTimer: 
      stopCountdown();//stop count down 
      startTimer.setText(getString(R.string.start_timer));//Change text to Start Timer 
      countdownTimerText.setText(getString(R.string.timer));//Change Timer text 
      break; 
    } 
} 

getSeconds EdidtTexが空の場合、このエラーは、ログの猫にあります:

エラー:

8月17日07:48:26.402 3789から3789/amir.app.pro .my_timer2 E/AndroidRuntime:致命的な例外:メイン java.lang.NumberFormatException:無効INT: "" java.lang.Integer.invalidInt(Integer.java:138) でjava.lang.Integer.parseInt(整数で。 java:359)(MainActivity.java:54) at android.view.View.performClick(View.java:325)でを受け取りました。 4204)android.view.View $ PerformClick.run(View.java:17355)android.os.Handler.handleCallback(Handler.java:725で )android.os.Handler.dispatchMessageで (Handler.javaで : 92)java.lang.reflect.Method.invokeNative(ネイティブメソッドでandroid.app.ActivityThread.main(ActivityThread.java:5041) でandroid.os.Looper.loop(Looper.java:137) で) java.lang.reflect.Methでcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:od.invoke(Method.java:511) ) dalvik.system.NativeStart.main(ネイティブメソッド)

における560) はこのラインを指す:

int noOfMinutes = Integer.parseInt(getMinutes) * 60 * 1000; 
+0

例外のlogcatを投稿してください! – TR4Android

答えて

0

この空Stringのを許可しないようにこの問題は、Integer.parseInt()の行動によって引き起こされます。このメソッドを呼び出す前に、入力が空であるかどうかを確認する必要があります:

int noOfMinutes = getMinutes.isEmpty() ? 0 : Integer.parseInt(getMinutes) * 60 * 1000; 
int noOfSeconds = getSeconds.isEmpty() ? 0 : Integer.parseInt(getSeconds) * 1000; 
関連する問題