单击按钮启动计时器

时间:2015-07-26 16:09:50

标签: android timer handler

我是Android编程的新手,但我知道Java。 我的问题是,计时器如何在Android中运行?我已经读过,最好使用处理程序。 我想要做的是,你点击一个按钮,计时器启动。对于单击按钮的那一刻,对我来说一切都很清楚但是如何启动计时器?

1 个答案:

答案 0 :(得分:6)

  

计时器如何在Android中运行?

您最好阅读Timer documentationCountDownTimer DocumentationHandler Documentation

  

到目前为止,当点击按钮时,一切都被清除了;但是,我该如何启动计时器?

如果我没有误解您的问题,当您说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的{​​{3}}。

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上,我输入了此代码(停止/取消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获取单击的按钮

您可以像这样创建名为int的{​​{1}}:

NumberButtonClicked

然后在每个int NumberButtonClicked = 0; ,你必须这样做(例子):

Button

然后你知道如果你点击btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { NumberButtonClicked = 1; }); } 你的变量将是1。