2016-04-18 1 views
0

Ich habe versucht, einen Countdown-Timer zu formatieren und hatte nicht viel Erfolg. Der Timer zählt die richtige Menge von Minuten/Stunden/Sekunden als Eingabe nach unten, jedoch bei der Ausgabe an den Benutzer zurück, anstatt eines schönen normal aussehende Countdown-Timer Blick erhalte ich folgende verschiedene Ausgänge: When attempting to countdown from 25 minutesHH: MM: SS-Format Android Studio CountdownTimer

Bei dem Versuch, mit dem Countdown ab 25 Minuten, dann unten habe ich, wenn ich versuche, von 10 Minuten zu countdown: 10 minutes Es scheint richtig mit alles Countdown 1 Minute oder weniger.

Dies ist der Code Ich habe die Ausgabe zu formatieren, ich habe auch den Code für die CounterClass, die es in ist.

private class CounterClass extends CountDownTimer { 
    public CounterClass(long millisInFuture, long countDownInterval) { 
     super(millisInFuture, countDownInterval); 
    } 

    @Override 
    public void onTick(long millisUntilFinished) { 
     String hms = String.format("%02d:%02d:%02d", 
       TimeUnit.MILLISECONDS.toHours(millisUntilFinished), 
       TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished), 
       TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)); 

     timeDisp.setText(hms); 
    } 
} 

Vielen Dank im Voraus!

Antwort

0

Wie bereits erwähnt in this answer

Sie sind in der Lage, die Stunden zu erhalten, indem Sie:

int hours = (int) ((millisUntilFinished/(1000*60*60)) % 24); 

Und feststellen, dass Sie, indem Sie diese beliebige Anzahl von Minuten berechnen kann:

_tv.setText(""+String.format("%d min, %d sec", 
       TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished), 
       TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
       TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)))); 
+0

Ich danke dir sehr :) – Caoimhe