2017-12-06 1 views
0

이 버튼이 있는데 클릭하면 타이머가 생성됩니다.어떻게하면 단추가 카운트 다운 타이머를 만들고, 다시 클릭 할 때마다 타이머에 시간을 추가 할 수 있습니까?

문제는 클릭 할 때마다 타이머가 생성된다는 것입니다.

이 버튼이 원했던 것은 처음 클릭했을 때 타이머를 만든 다음 모든 후속 클릭에서 myTime 변수에 5 초를 더하여 타이머가 만료 될 때까지입니다.

어떻게 해결할 수 있습니까? 당신은 타이머를 삭제하고 다시 시작해야합니다

myTime = myTime + 5000 
    new CountDownTimer(myTime, 1000) { 

     public void onTick(long millisUntilFinished) { 
      myButton.setText("seconds remaining: " + millisUntilFinished/1000); 
     } 

     public void onFinish() { 
      myButton.setText("done!"); 
     } 
    }.start(); 
+0

당신은 친구를 이동 : 단지에 (https://stackoverflow.com/questions/17383584/how-to-add-time-to-countdown-timer) –

+0

제거 혼란 라인 [이 스레드를 체크 아웃]을 /. – MikeT

답변

0

:

다음 버튼을 클릭했을 때 실행되는 코드입니다. 마지막 틱의 밀리 초를 캡처하고 5 초를 더하십시오. 당신이 많은 시간을 잃지 않도록 틱을 작게 만드십시오. 여기

CountDownTimer myTimer = null; 
long myTime = STARTING_TIME_IN_MILLIS; 
... 
// In the button click action performed event 

if (myTimer != null) { 
    myTimer.cancel(); // Cancel the existing timer 
    myTime = myTime + 5000; // Add five seconds to the remaining time. 
} 
// Start a new timer with the remaining time as the starting point. 
myTimer = new CountDownTimer(myTime, 100) { 
     public void onTick(long millisUntilFinished) { 
      myButton.setText("seconds remaining: " + millisUntilFinished/1000); 
      // Save the remaining time 
      myTime = millisUntilFinished; 
     } 

     public void onFinish() { 
      myButton.setText("done!"); 
     } 
}.start(); 
+0

죄송합니다.하지만 "CountDownTimer myTimer = null;"은 어디에 있습니까? 나는 확실히 모른다. 클래스가 생성 함수에 있거나 클래스에 있어야합니까? – Berkly

+0

https://pastebin.com/Tt26Ni7s – Berkly

+0

@Berkly. 좋아 보인다. 너에게 효과가 있니? –

관련 문제