单击按钮启动计时器

Phi*_*hil 3 android timer handler

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

Ski*_*ᴉʞS 6

计时器如何在Android中运行?

您最好阅读Timer文档,CountDownTimer文档处理程序文档.

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

如果我没有误解你的问题,当你说Timer,你指的是CounteDownTimer.所以,你应该有这样的事情:

(我已经编写了一个示例代码.所以,你应该首先理解它,然后,你应该将它应用到你的代码中.)

添加 Buttons

btn1 = (Button)findViewById(R.id.bt1);
btn2 = (Button)findViewById(R.id.bt2);
Run Code Online (Sandbox Code Playgroud)

添加 SetOnClickListener()

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

    });
}

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

    });
}
Run Code Online (Sandbox Code Playgroud)

btn1开始了CountDownTimer,第二个停止并清除它.

现在,我创建了一个内部类CountDownTimerTest名称.

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));
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我btn1,我把这个代码(开始CountDownTimer):

countDownTimer.start();
Run Code Online (Sandbox Code Playgroud)

在我btn2,我把这个代码(停止/取消CountDownTimer):

countDownTimer.cancel();
Run Code Online (Sandbox Code Playgroud)

现在,我希望你能理解它是如何CountDownTimer工作的,如果你的问题不是CountDownTimer,请告诉我,我会尽快按你的意愿更新我的答案.

编辑 - 只有一个 Button

要做到这一点Button,你可以这样做:

创建一个Boolean变量:

Boolean ButtonClicked = false;
Run Code Online (Sandbox Code Playgroud)

然后,修改代码如下:

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

编辑2获取单击的按钮

您可以创建一个这样的int调用NumberButtonClicked:

int NumberButtonClicked = 0;
Run Code Online (Sandbox Code Playgroud)

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

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

然后你知道,如果你点击了btn1你的变量将是1.