2017-03-10 5 views
-5

Derzeit in meiner App habe ich den Benutzer mehrere Countdown-Timer erstellen, wenn sie auf eine Schaltfläche klicken. Ich möchte jeden Countdown-Timer mit einer Abbrechen-Taste verknüpfen, die es dem Benutzer ermöglicht, den Countdown-Timer abzubrechen. Zur Zeit habe ich eine Funktion, die den Countdown-Timer mit cdt.cancel() beendet, wobei cdt der countdowntimer var ist. Das erlaubt mir jedoch nur das cdt abzubrechen, das zuvor erstellt wurde. Gibt es eine Möglichkeit, den Countdown-Timer davor abzubrechen?So steuern Sie mehrere CoundownTimer in Android

+2

Bitte fügen – Stefan

+0

Speicher, um andere Timer in einer anderen Variablen oder sogar eine Liste Code –

Antwort

0

Ich würde so etwas tun:

private void startNewTimer(List<CountDownTimer> listOfTimers) { 


     CountDownTimer countDownTimer = new CountDownTimer(1000,1000) { 
      @Override 
      public void onTick(long millisUntilFinished) { 

      } 

      @Override 
      public void onFinish() { 

      } 
     }.start(); 

     listOfTimers.add(countDownTimer); 

    } 

    private boolean cancelTimers(List<CountDownTimer> listOfTimers) { 

     if(listOfTimers != null && !listOfTimers.isEmpty()) { 
      for(CountDownTimer cdt : listOfTimers) { 
       cdt.cancel(); 
      } 
      listOfTimers = null; 
      return true; 
     } 
     return false; 
    } 

Vielleicht möchten Sie Ihre erstellen List<CountDownTimer> listOfTimers als eine globale Variable (List<CountDownTimer> listOfTimers = new ArrayList<>())

Sie würden rufen die startNewTimer(list) aus der onClick Methode Ihrer Taste OnClickListener und die stopTimers, wo Sie es für richtig halten.

Wenn Sie eine bestimmte abbrechen Abbrechen Sie es durch seinen Index in den List mag diese Referenz könnte:

private boolean stopTimer(List<CountDownTimer> listOfTimers, int index) { 

     if(listOfTimers != null && listOfTimers.size() > index) { 
      for(int i = 0; i < listOfTimers.size(); i++) { 
       listOfTimers.get(i).cancel(); 
      } 
      return true; 
     } 
     return false; 
    } 
Verwandte Themen