单击按钮启动计时器

Start timer on button click

我是 Android 编程新手,但我知道 Java。 我的问题是,计时器如何在 Android 中工作?我读过最好使用处理程序。 我想要做的是,你点击一个按钮,计时器开始计时。到单击按钮的那一刻,我都清楚了,但是如何启动计时器?

How does a timer work in Android?

你最好阅读 Timer documentation, CountDownTimer Documentation and Handler Documentation

To the moment, when the button is clicked, all is cleared for me; but, how can I start the timer?

如果我没有误解你的问题,当你说 Timer 时,你指的是 CounteDownTimer。所以,你应该有这样的东西:

(我写了一个示例代码。所以,你应该先理解它,然后,你应该把它应用到你的代码中。)

添加 Buttons

btn1 = (Button)findViewById(R.id.bt1);
btn2 = (Button)findViewById(R.id.bt2);

添加 SetOnClickListener()

btn1.setOnClickListener(new OnClickListener() {
    @Override
        public void onClick(View arg0) {

    });
}

btn2.setOnClickListener(new OnClickListener() {
    @Override
        public void onClick(View arg0) {

    });
}

我的 btn1 启动 CountDownTimer,第二个停止并清除它。

现在,我用 CountDownTimerTest 名称创建了一个 Inner Class

public class CountDownTimerTest extends CountDownTimer {
    public CountDownTimerTest(long startTime, long interval) {
        super(startTime, interval);
    }

    @Override
    public void onFinish() {
        text.setText("Time's up!");
        timeElapsedView.setText("Time Elapsed: " + String.valueOf(startTime));
    }

    @Override
    public void onTick(long millisUntilFinished) {
        text.setText("Time remain:" + millisUntilFinished);
        timeElapsed = startTime - millisUntilFinished;
        timeElapsedView.setText("Time Elapsed: " + String.valueOf(timeElapsed));
    }
}

然后在我的 btn1 上,我把这段代码(启动 CountDownTimer):

countDownTimer.start();

然后在我的 btn2 上,我把这段代码(stop/cancel CountDownTimer):

countDownTimer.cancel();

现在,我希望您能理解 CountDownTimer 的工作原理,如果您的问题不是关于 CountDownTimer,请告诉我,我会尽快更新我的答案你的愿望。

编辑 - 只有一个 Button

要使用相同的 Button,您可以这样做:

创建一个 Boolean 变量为:

Boolean ButtonClicked = false;

然后,修改代码如下:

btn1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        if (!ButtonClicked)) {
            ButtonClicked = true;
            countDownTimer.start(); 
        } else {
            ButtonClicked = false;
            countDownTimer.cancel();
        }                       
    });
}

编辑 2 获取单击的按钮

您可以像这样创建一个名为 NumberButtonClickedint :

int NumberButtonClicked = 0;

然后在每个 Button 你必须这样做(示例):

btn1.setOnClickListener(new OnClickListener() {
    @Override
        public void onClick(View arg0) {
            NumberButtonClicked = 1;
    });
}

然后你知道如果你点击了 btn1 你的变量将为 1。