Alex Rivera | Logout

Android - Get time of chronometer widget

Asked 2009-02-08T22:23:17.420
52

How to get the time from a Chronometer? I tried getText, getFormat, getBase, etc, but none of them could work.

Example code snippet:

Chronometer t = (Chronometer)findViewById(R.id.toptime);
long time = SystemClock.elapsedRealtime()-t.getBase();
Log.d(null,"Was: "+time); //time is not the proper time for some reason - it is a random number between 0 and 50
t.setBase(SystemClock.elapsedRealtime());
t.start();
Edit
Report

2 Answers

4

@nyenyec +1: here is what i ended up with, while using nyenyec's response without a sub class.

        chronometer.setOnChronometerTickListener(new OnChronometerTickListener() {                      
        @Override
        public void onChronometerTick(Chronometer chronometer) {
            long elapsedMillis = SystemClock.elapsedRealtime() - chronometer.getBase();
            if(elapsedMillis>THRESHOLD){
                doYourStuff();
            }
        }
    });

where THRESHOLD is

private static final int THRESHOLD_EXERSISE = 60000; //In milliseconds
answered 2011-04-07T09:22:34.827
2

My Solution:

    public void starttimer(View view){
    Button mybtn = (Button) view;
    if (mybtn.equals(findViewById(R.id.button1))) {
        mycm.setBase(SystemClock.elapsedRealtime() - elapsed);
        mycm.start();
    }
    else {
        mycm.stop();
        elapsed = SystemClock.elapsedRealtime() -  mycm.getBase();
    }
}

In onCreate:

    mycm = (Chronometer) findViewById(R.id.chronometer1);
    elapsed = 0;

There are two buttons in the layout which both call the starttimer method (start and stop)

answered 2011-12-22T08:53:30.700

Your Answer