计时码表:我想将按钮重置为"00.00",不重新启动计时器 [英] Chronometer: I want to make a button reset to "00.00" not restart the chronometer

查看:181
本文介绍了计时码表:我想将按钮重置为"00.00",不重新启动计时器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望开始按钮可以开始时间,停止按钮可以完全停止时间,而重置按钮可以使时钟重新回到"00.00".每次我单击重置"时,它都会重新启动时间.我只希望它重新设置为"00.00".谢谢你的帮助.这是我的代码:

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:

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);
    }
    }

推荐答案

尝试以下更改,它们对我有用:
Try the following changes, they worked for me:
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);
    }
});


这篇关于计时码表:我想将按钮重置为"00.00",不重新启动计时器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆