2010-03-04 28 views
7

Zrobiłem aplikację w Android i wykorzystywane czasomierz tak ..timerem nie zatrzymuje się w 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); 
      } 

Ale mój problem jest nie wiem jak zatrzymać stoper. Dowolny pomysł?

Próbowałem już:

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 
    } 
}); 

Odpowiedz

10

start1.cancel() jest poprawna metoda zadzwonić do anulować timer.

nie podała żadnych szczegółów na temat błędów jakie zostały lub dlaczego to nie działa dla Ciebie, ale jestem przy założeniu program nie skompilować, ponieważ zmienna start1 jest zmienna lokalna. Prawdopodobnie jest to lokalna zależność od dowolnej metody, w jakiej znajduje się blok . Oznacza to, że twoja konstrukcja OnClickListener nie ma pojęcia, co to jest start1.

Aby rozwiązać ten problem po prostu zadeklarowaćstart1 jako zmienną klasy (poza wszystkich metod, ale w klasie):

public class someClass { 

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

Takie postępowanie pozwoli inne metody rozpoznawania i interakcji z start1

1

rozmowę start1.cancel(), gdy chcesz zatrzymać stoper

+0

ja już próbowałem, ale nie obsługuje. – BIBEKRBARAL

+0

Czy możesz nam pokazać, jak to robisz? Być może, problem może leżeć ... – Prashast

+0

użyłem start1.cancel następująco ... quitApplication.setOnClickListener (nowa 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.klasa); \t \t \t startActivity (i); \t \t \t \t \t \t \t // Do zrobienia Automatycznie generowane metodą skrótową \t \t \t \t \t \t \t} \t \t \t \t \t \t \t}); – BIBEKRBARAL

2

wiem, że to jest rok stary, ale dla przyszłych czytelników wystarczy zadzwonić timer jako finał.

jak tak

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

który powinien działać

+1

Dlaczego miałoby to jakieś znaczenie? –

Powiązane problemy