-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
非常感謝兄弟 –