2010-03-04 31 views
7

tôi đã thực hiện một ứng dụng trong Android và sử dụng bộ đếm thời gian như thế này ..hẹn giờ không chỉ dừng lại ở android

try { 
    CountDownTimer start1 = new CountDownTimer(20000, 1000) { 

     public void onTick(long millisUntilFinished) { 
       TextView timeShow = (TextView)findViewById(R.id.showTime); 
     timeShow.setText(" "+" 00:" +millisUntilFinished/1000); 
      } 

Nhưng vấn đề của tôi là tôi không biết làm thế nào để ngăn chặn hẹn giờ. Bất kỳ ý tưởng?

Tôi đã cố gắng:

quitApplication.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     start1.cancel(); 
     Intent i = new Intent(v.getContext(), startGame.class); 
     startActivity(i); 
     // TODO Auto-generated method stub 
    } 
}); 

Trả lời

10

start1.cancel() là phương pháp chính xác để gọi hủy bỏ việc hẹn giờ.

Bạn không cung cấp bất kỳ chi tiết nào về lỗi bạn có hoặc lý do lỗi không hoạt động cho bạn, nhưng tôi cho rằng chương trình của bạn không biên dịch vì biến của bạn start1biến cục bộ. Nó có thể là cục bộ cho bất kỳ phương thức nào mà khối try của bạn đang ở. Điều này có nghĩa là việc xây dựng OnClickListener của bạn không có ý tưởng gì là start1.

Để khắc phục điều này chỉ đơn giản là tuyên bốstart1 như là một biến lớp (bên ngoài của tất cả các phương pháp nhưng trong lớp):

public class someClass { 

CountDownTimer start1; 
// blah some code 
public void someMethod { 
    try { 
     start1 = new CountDownTimer() { //etc 

Làm như vậy sẽ cho phép các phương pháp khác để nhận biết và tương tác với start1

1

gọi start1.cancel() khi bạn muốn ngừng đồng hồ đếm

+0

i đã thử nó nhưng nó không hỗ trợ. – BIBEKRBARAL

+0

Bạn có thể chỉ cho chúng tôi cách bạn đang làm điều đó không? Có lẽ, vấn đề có thể nằm đó ... – Prashast

+0

tôi đã sử dụng start1.cancel như sau ... quitApplication.setOnClickListener (new OnClickListener() \t \t { \t \t \t public void onClick (View v) \t \t \t { \t \t \t \t \t \t \t start1.cancel(); \t \t \t \t Inten t i = new Intent (v.getContext(), startGame.lớp học); \t \t \t startActivity (i); \t \t \t \t \t \t \t // TODO Auto-tạo ra phương pháp còn sơ khai \t \t \t \t \t \t \t} \t \t \t \t \t \t \t}); – BIBEKRBARAL

2

Tôi biết đây là một năm cũ nhưng đối với độc giả trong tương lai, bạn chỉ cần gọi hẹn giờ là trận chung kết.

như vậy

final CountDownTimer start1 = new CountDownTimer(20000, 1000) {} 

nên hoạt động

+1

Tại sao điều này lại tạo nên sự khác biệt? –

Các vấn đề liên quan