计时器在 Android 中是如何工作的?
你最好阅读Timer documentation、CountDownTimer Documentation和Handler 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 名称创建一个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 上,我输入了这个代码(停止/取消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();
}
});
}
EDIT 2 获取点击了什么按钮
您可以像这样创建一个名为NumberButtonClicked 的int:
int NumberButtonClicked = 0;
然后在每个Button 你必须这样做(示例):
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
NumberButtonClicked = 1;
});
}
那么你知道如果你点击了btn1你的变量将是1。