Исправить круговой индикатор выполнения - PullRequest
0 голосов
/ 10 декабря 2018

Я работаю над приложением для Android, которое похоже на игру с секундомером.Во всяком случае, на данный момент круговой индикатор выполнения работает правильно, когда запускается и останавливается в первый раз, но после этого круговой индикатор выполнения выходит из строя, и я бы хотел, чтобы он продолжал работать до тех пор, пока не истечет время, независимо от того, прикоснуться ли к кнопке остановки или нет.,Кроме того, кнопка сброса генерирует огромное случайное время при нажатии, когда таймер включен.Любая помощь с благодарностью.

Вот код:

 /**
         * method to initialize the values for count down timer
         */


        /**
         * method to start count down timer
         */
        private void startCountDownTimer() {

            countDownTimer = new CountDownTimer(timeCountInMilliSeconds, 1000) {
                @Override
                public void onTick(long millisUntilFinished) {
                    timeUntilDone = (int)(millisUntilFinished/1000);
                    textViewTime.setText(hmsTimeFormatter(millisUntilFinished));

                    progressBarCircle.setProgress((int) (millisUntilFinished / 1000));

                }

                @Override
                public void onFinish() {

                    textViewTime.setText(hmsTimeFormatter(timeCountInMilliSeconds));
                    // call to initialize the progress bar values
                    setProgressBarValues();
                    // hiding the reset icon
                    imageViewReset.setVisibility(View.GONE);
                    // changing stop icon to start icon
                    imageViewStartStop.setImageResource(R.drawable.icon_start);
                    // making edit text editable
                    editTextMinute.setEnabled(true);
                    // changing the timer status to stopped
                    timerStatus = TimerStatus.STOPPED;
                    pauseClock();

                    stopWatch.setText("0:00:00");
                   // stopCountDownTimer();
                   // stopCountDownTimer();
                }

            }.start();
            if (timerStatus==TimerStatus.STOPPED) {
                countDownTimer.start();
            }
            else{
                startClock();
            }
        }

        /**
         * method to stop count down timer
         */
        private void stopCountDownTimer() {
            countDownTimer.cancel();
        }

        /**
         * method to set circular progress bar values
         */
        private void setProgressBarValues() {

            progressBarCircle.setMax((int) timeCountInMilliSeconds / 1000);
            progressBarCircle.setProgress((int) timeCountInMilliSeconds / 1000);
        }

/ **

 * method to reset count down timer
     */
    private void reset() {
        startTime = 01; timeInMilliseconds =01; timeSwapBuff = 01; updateTime=01;
        stopWatch.setText("0:00:00");
        progressBarCircle.setProgress(timeUntilDone);
    }
...