【问题标题】:Not sure how to reset my paused stopwatch不知道如何重置我暂停的秒表
【发布时间】:2015-04-24 03:25:42
【问题描述】:

(我对编码还很陌生)好吧,我遇到了我以前帖子的解决方案,并想出了如何显示毫秒......但是,我似乎无法让暂停的实例重置回 00 :00:00

我尝试了一些方法,例如 mreset elapsedTime 并将基数设置为 00:00:00,但似乎没有任何效果!有什么建议吗?

这是 Java 文件:

package com.jackson.eason.stopwatch;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.TextView;


public class MainActivity extends Activity {

    /** Called when the activity is first created. */

    private Button startButton;
    private Button pauseButton;
    private Button resetButton;
    private long startTime = 0L;
    private Handler myHandler = new Handler();
    long timeInMillies = 0L;
    long timeSwap = 0L;
    long finalTime = 0L;

    private TextView textTimer;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textTimer = (TextView) findViewById(R.id.textTimer);

        startButton = (Button) findViewById(R.id.start);
        startButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                startTime = SystemClock.uptimeMillis();
                myHandler.postDelayed(updateTimerMethod, 0);

            }
        });

        pauseButton = (Button) findViewById(R.id.stop);
        pauseButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                timeSwap += timeInMillies;
                myHandler.removeCallbacks(updateTimerMethod);

            }
        });

       //Updated.... Still having errors with parenthesis
    resetButton = (Button) findViewById(R.id.reset);
    resetButton.setOnClickListener(SystemClock.setCurrentTimeMillis()
     timeInMillies = 0L);
    timeSwap = 0L;
    finalTime = 0L;




    }
    private Runnable updateTimerMethod = new Runnable() {

        public void run() {
            timeInMillies = SystemClock.uptimeMillis() - startTime;
            finalTime = timeSwap + timeInMillies;

            int seconds = (int) (finalTime / 1000);
            int minutes = seconds / 60;
            seconds = seconds % 60;
            int milliseconds = (int) (finalTime % 1000);
            textTimer.setText("" + minutes + ":"
                    + String.format("%02d", seconds) + ":"
                    + String.format("%03d", milliseconds));
            myHandler.postDelayed(this, 0);
        }

    };

}

任何帮助将不胜感激!

【问题讨论】:

  • 请不要对 Java 使用 stack sn-ps。

标签: android reset stopwatch


【解决方案1】:

在您的 resetButton 操作中尝试将所有值设置回 0

【讨论】:

  • 谢谢,但尝试了 setOnClickListener(SystemClock.setCurrentTimeMillis(00:00:00));但它没有成功,因为我不知道如何措辞..
  • 但你的值仍然需要设置回 0,如果那是你用来显示当前时间 long timeInMillies = 0L;长时间交换 = 0L; long finalTime = 0L;
  • 你的意思是这样? resetButton.setOnClickListener(SystemClock.setCurrentTimeMillis(00:00:00); long timeInMillies = 0L; long timeSwap = 0L; long finalTime = 0L;
  • 是的,但删除 'long' 否则你只是在创建一个新值
  • 好的,谢谢,代码上一切正常,除了 setCurrentTimeMillis(00:00:00));这有多个关于分号和括号的错误......不确定有什么问题?
【解决方案2】:

在重置按钮部分,您需要包含一个 onClick 事件并将时间交换设置为 0。像这样的:

.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view){
            finalTime = 0;
            timeInMillis = 0L;
            timeSwap = 0L;

【讨论】:

    猜你喜欢
    • 2017-02-06
    • 2015-05-10
    • 1970-01-01
    • 2023-03-11
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多