Android-Programmierung: Chronometer - Eine tickende TextView
Willemers Informatik-Ecke
Ähnliches Thema: Der CountDownTimer von Android

Erstellung in der Layout-Datei

Android stellt ein Kontrollelement namens Chronometer zur Verfügung, das im Layout wie eine TextView eingesetzt werden kann. Man erzeugt im Designer eine TextView und ersetzt das Wort TextView in der XML-Layout-Datei durch das Wort Chronometer.

    <Chronometer
        android:id="@+id/tvTick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
Das Attribut android:text muss nun nicht mehr gesetzt werden. Der Chronometer setzt ihn automatisch auf 00:00.

Start und Stop

Aus der Activity wird der Chronometer wie jede andere View über findViewById ermittelt. Für diese existieren die Methoden start und stop. Um den Timer auf 0 zu setzen, verwendet man setBase und übergibt den Wert SystemClock.elapsedRealtime().
Chronometer chro = (Chronometer) findViewById(R.id.tvTick);
chro.setBase(SystemClock.elapsedRealtime());
chro.start();
Die vergangene Zeit ermittelt man, indem man einen OnChronometerTickListener aufsetzt und in dessen Methode onChronometerTick eine globale Zählervariable hochzählt.
Chronometer chro = (Chronometer) findViewById(R.id.tvTick);
chro.start();
chro.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer chronometer) {
        sekunden++;
    }
});