单击按钮启动计时器
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 获取单击的按钮
您可以像这样创建一个名为 NumberButtonClicked
的 int
:
int NumberButtonClicked = 0;
然后在每个 Button
你必须这样做(示例):
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
NumberButtonClicked = 1;
});
}
然后你知道如果你点击了 btn1
你的变量将为 1。
我是 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 获取单击的按钮
您可以像这样创建一个名为 NumberButtonClicked
的 int
:
int NumberButtonClicked = 0;
然后在每个 Button
你必须这样做(示例):
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
NumberButtonClicked = 1;
});
}
然后你知道如果你点击了 btn1
你的变量将为 1。