2013-06-29 87 views
5

Tôi biết có một bài đăng như thế này nhưng nó không trả lời câu hỏi một cách rõ ràng. Tôi có một trò chơi nhỏ, nơi bạn nhấn vào một đầu và nó di chuyển đến một vị trí ngẫu nhiên và bạn nhận được +1 để ghi bàn. Trong khi đó có một bộ đếm thời gian đếm ngược từ 60000 (60 giây) và hiển thị bên dưới. Làm thế nào tôi có thể làm cho nó như vậy bất cứ khi nào đầu được khai thác, nó thêm một giây để hẹn giờ?Cách thêm thời gian vào đồng hồ đếm ngược?

new CountDownTimer(timer, 1) { 
    public void onTick(long millisUntilFinished) { 
     textTimer.setText("Timer " + millisUntilFinished/1000); 
    } 
    public void onFinish() { 
     Intent intent = new Intent(MainActivity.this, Gameover.class); 
     startActivity(intent); 
    } 
}.start(); 

và trong trường hợp onClickListner tôi có:

timer=timer+1000; 

Nó hiện không hoạt động như trong không có thời gian gia tăng đối với các nhấp chuột.

Bất kỳ trợ giúp nào sẽ được đánh giá cao :)

+0

cách duy nhất là hủy cuộc gọi trên phiên bản hiện tại và tạo một phiên bản mới – Blackbelt

Trả lời

9

Bạn không thể thay đổi thời gian của bộ hẹn giờ đã lên lịch. Cách duy nhất để đạt được những gì bạn đang cố gắng làm là bằng cách hủy hẹn giờ và thiết lập một bộ đếm thời gian mới.

public class CountdownActivity extends Activity implements OnTouchListener{ 
    CountDownTimer mCountDownTimer; 
    long countdownPeriod; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_countdown); 
     countdownPeriod = 30000; 
     createCountDownTimer(); 
    } 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if (mCountDownTimer != null) 
       mCountDownTimer.cancel(); 
     createCountDownTimer(); 

     return true; 
    } 

    private void createCountDownTimer() { 
     mCountDownTimer = new CountDownTimer(countdownPeriod + 1000, 1) { 

      @Override 
      public void onTick(long millisUntilFinished) { 
        textTimer.setText("Timer " + millisUntilFinished/1000); 
       countdownPeriod=millisUntilFinished; 
      } 

      @Override 
      public void onFinish() { 
       Intent intent = new Intent(MainActivity.this, Gameover.class); 
       startActivity(intent); 
      } 
     }; 
    } 
} 
+0

OK Tôi sẽ thử điều này! – AtomicTim

+0

Bạn đã hoàn thành công việc chưa? –

+0

Nó thực sự cảm ơn bạn rất nhiều :) – AtomicTim