2013-06-29 24 views
5

Wiem, że jest taki post, ale nie odpowiada to jednoznacznie. Mam małą grę, w której dotykasz głowy, a ona przesuwa się do losowej pozycji, a otrzymasz +1 do wyniku. Tymczasem zegar odlicza od 60000 (60 sekund) i wyświetla poniżej. Jak mogę to zrobić tak, że po dotknięciu głowy, dodaje sekundę do zegara?Jak dodać czas do odliczania?

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

aw przypadku onClickListner mam:

timer=timer+1000; 

Obecnie nie działa tak jak w nie ma czasu dodanej na kliknięcia.

Każda pomoc będzie mile widziane :)

+0

Jedynym sposobem jest wywołanie cancell na bieżącej instancji i utworzenie nowej instancji – Blackbelt

Odpowiedz

9

Nie można zmienić czas zaplanowanego timer. Jedynym sposobem na osiągnięcie tego, co próbujesz zrobić, jest anulowanie zegara i ustawienie nowego.

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 Spróbuję tego dzięki! – AtomicTim

+0

Czy to ci zadanie zostało wykonane? –

+0

Naprawdę bardzo ci dziękuję :) – AtomicTim