Android Chronometer Werte speichern und abrufen

  • Hallo Android-Developer-Community,


    ich bin bzgl. der Android Programmierung ziemlich aus der Übung und würde gerne eure Ratschläge und Hilfe entgegen nehmen.


    Was ich vorhabe ist, mit einem Chronometer Zeiten festzuhalten und von den letzten Zeiten an wieder zu beginnen. Klingt verwirrend, ich versuche es etwas einfacher zu erklären.


    In meinem Layout habe ich einen Chronometer, 2 Buttons und 2 Textviews. Mehr nicht.


    Wenn ich auf Button1 oder Button2 klicke, soll der Chronometer anfangen hochzuzählen, also ganz normal starten.


    Das ding ist, er soll für jeden Button die eigenen Zeiten speichern. Wenn ich auf Button 1 klicke, fängt er an hochzuzählen. Drücke ich anschließend auf Button2, soll der mit dem hochzählen für Button1 aufhören und für Button2 anfangen hochzählen. Drücke ich wieder auf Button 1, dann soll er ab dann wieder hochzählen, wo er aufgehört hat. Das gleiche gilt auch für Button2. Falls ein Button zum 1. mal getätigt wird, soll es logischerweise von 00:00 beginnen. Ansonsten, von da an wo es aufgehört hat.


    Was ich bis jetzt erreicht habe ist, dass es für Button1 normal hochzählt. Drücke ich auf Button2 wird der Zähler auf 0 gesetzt jedoch beim erneuten Wechsel auf Button1 wird weder der Wert des Chronometers gespeichert, noch wird der alte Wert von Button1 fortgeführt, sondern der Wert von Button2. Also ziemlich durcheinander und verwirrend :S 8| :cursing:


    Hier sind die Codes:




    Leider musste ich auch eine stop.funktion mit einbringen, wobei ich das eigentlich nicht möchte. Was genau mache ich hier falsch oder an was habe ich nicht gedacht? :whistling:
    Wäre euch sehr dankbar für jede kleine Hilfe. :thumbup:


    Danke im Voraus

  • In Deinem Design scheint mindestens ein Wert je Button zu fehlen.
    (Von verwirrender Namensgebung sehe ich einmal ab.)


    Du setzt Dein Label an Hand der letzten gespeicherten Zeit zuzüglich der aktuellen Zeit.
    Nirgendwo hältst Du aber fest, wie lange Button1 eben nicht hochgezählt hat.


    Da Du ja schon eine Start- und Stoppfunktionalität hast, könntest Du natürlich überlegen zwei unabhängige Chronometer-Instanzen zu benutzen.
    Ein Buttonklick startet dann den eigenen und stoppt den fremden Chronometer. Was Chronometer genau kann ist ja nicht ersichtlich...


    Alternativ merkst Du Dir zu jedem Button nicht nur die letzte Zeit (timen) sondern auch, wann zuletzt gestoppt wurde. (stopn)
    Anhand stopn und elapsedRealtime() kannst Du dann die Differenz berechnen, die timen hinzuaddiert werden soll.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hallo ihr zwei,


    und danke für eure Antworten und tipps.


    Es stimmt alles was ihr gesagt habt. Mittlerweile habe ich jetzt mal zum testen mehrere Chronometer benutzt und scheint so zu funktionieren. DIe View habe ich zudem freundlicher angepasst.


    Vorrübergehend ist das eine Lösung.


    Danke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!