Click here to Skip to main content
15,892,697 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
I want the start button to start the time, the stop button to completely stop it at that time, and the reset button to start the clock back at "00.00". Every time I click reset it restarts the time. I just want it to reset back to "00.00". Thanks for your help. Heres my code:

Java
import android.os.Bundle;
    import android.os.SystemClock;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Chronometer;
    
    public class TimeLogActivity extends ActionBarActivity {Chronometer focus;
    Button start, stop, reset;

    private Toolbar toolbar;
    private DrawerLayout drawerLayout;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_time_log);

        toolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(toolbar);


        start = (Button) findViewById(R.id.timeLogStartButton);
        stop = (Button) findViewById(R.id.timeLogStopButton);
        reset  = (Button) findViewById(R.id.timeLogResetButton);

        focus = (Chronometer) findViewById(R.id.timeLogChronometer);


        start.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                focus.start();
            }
        });

        stop.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                focus.stop();
            }
        });

        reset.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                focus.setBase(SystemClock.elapsedRealtime());
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_time_log, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
    }
Posted
Updated 20-Jul-15 10:52am
v2
Comments
Richard MacCutchan 21-Jul-15 12:37pm    
See my updated solution.

1 solution

Try the following changes, they worked for me:
Java
long offset = 0;
start.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        focus.setBase(SystemClock.elapsedRealtime() - offset);
        focus.start();
        start.setEnabled(false);
        reset.setEnabled(false);
        stop.setEnabled(true);
    }
});

stop.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        focus.stop();
        // get current elapsed time from start
        offset = SystemClock.elapsedRealtime() - focus.getBase();
        start.setEnabled(true);
        stop.setEnabled(false);
        reset.setEnabled(true);
    }
});

reset.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        focus.setBase(SystemClock.elapsedRealtime());
        offset = 0;
        reset.setEnabled(false);
    }
});
 
Share this answer
 
v3
Comments
pinkNgreenNERD 21-Jul-15 15:22pm    
thank u

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900