-1
嗨,我需要帮助来创建一个按钮,同时是天文钟。在第一次点击按钮的文本必须转换成一个天文钟,并开始计数时间,将通过,直到我再次点击它。天文台必须有小时,分钟和秒钟。Android - 如何获得2次点击同一按钮之间的时间
嗨,我需要帮助来创建一个按钮,同时是天文钟。在第一次点击按钮的文本必须转换成一个天文钟,并开始计数时间,将通过,直到我再次点击它。天文台必须有小时,分钟和秒钟。Android - 如何获得2次点击同一按钮之间的时间
你可以通过使用简单的逻辑来做到这一点,就像这样 - 当你点击按钮时,系统启动一个计时器并将标志设置为真。这个计时器将启动一个TimerTask,它将开始计算秒数。当你再次点击该按钮时,它将该标志设置为假,并且计时器将停止。在发生这种情况时,TimerTask会每1000ms增加一次秒数,然后更新按钮的文本以显示秒数作为计时表。
这里有一个小片段让你开始。
Timer timer;
CustomTask cust1;
boolean flag = false;
int seconds=0, hours=0, minutes=0;
button.setText("H:"+hours+"M:"+minutes+"S:"+seconds);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(!flag){
if(timer != null){
timer.cancel();
}
timer = new Timer();
cust1 = new CustomTask();
timer.schedule(cust1, 1000, 1000);
flag = true;
}else if(flag){
flag = false;
if (timer!=null){
timer.cancel();
timer = null;
}
}
}
});
class CustomTask extends TimerTask {
@Override
public void run() {
seconds++;
if(seconds == 60){
seconds = 0;
minutes++;
}
if(minutes == 60){
minutes=0;
hours++;
}
runOnUiThread(new Runnable(){
@Override
public void run() {
button.setText("H:"+hours+"M:"+minutes+"S:"+seconds);
}});
}
}
但会在我的按钮每秒显示一个天文台秒我想更新按钮文本到当前秒数 –
我会更新答案。 – SanVed
非常感谢兄弟 –