Tidtagarur, exempel

Diskussion i 'Frågor, support och diskussion' startad av appcreator, 22 januari 2012.

  1. appcreator

    appcreator Baby Droid Medlem

    Blev medlem:
    10 november 2011
    Inlägg:
    19
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej!

    Behöver en timer/tidtagare till min app.

    Har en stoppknapp & startknapp.

    Tiden ska börja från 0 när jag trycker på start och den ska uppdateras i en mTimeTextField = (TextView)findViewById(R.id.text);

    Önskat format är hh:mm:ss

    När jag trycker på stopp stoppas tiden och vid start så börjar tiden igen.

    Basicgrej kan man tycka. hittar inga bra exempel. har fått igång detta exemplet Updating the UI from a Timer | Android Developers
    men tiden som visas är hur länge applikationen har varit igång.

    Det borde ju finnas bra kodexempel, länkar på detta :)

    mvh/appcreator
     
  2. woody

    woody Teen Droid Medlem

    Blev medlem:
    3 september 2009
    Inlägg:
    319
    Mottagna gillanden:
    19

    MINA ENHETER

    Jag förstår inte riktigt problemet. Exemplet du länkar till kan väl nästan inte vara mer komplett.

    När startknappen trycks in lagrar du start-tiden med mStartTime = System.currentTimeMillis();
    och startar sedan uppdateringstimern som ju gör long millis = SystemClock.uptimeMillis() - start;
    och visar det som minuter och sekunder. Det är väl bara att byta ut SystemClock.uptimeMillis() mot System.currentTimeMillis().

    Jag skulle dock använda SystemClock.elapsedRealtime så att du slipper problem när systemklockan ändras t.ex. vid automatisk justering mot mobilnätet.
     
  3. appcreator

    appcreator Baby Droid Medlem

    Blev medlem:
    10 november 2011
    Inlägg:
    19
    Mottagna gillanden:
    0

    MINA ENHETER

  4. mach

    mach Youth Droid Medlem

    Blev medlem:
    29 april 2010
    Inlägg:
    115
    Mottagna gillanden:
    4

    MINA ENHETER

    För formateringen, använd SimpleDateFormat

    private SimpleDateFormat mDurationFormat = new SimpleDateFormat("HH:mm:ss");

    Date duration = new Date(stop.getTime() - start.getTime());
    tv.setText(mDuration + mDurationFormat.format(duration));