2012-01-18 33 views
0

我想做一個倒數計時器,返回值(秒),當在Android中執行觸摸。問題是我使用andengine,以便觸摸事件不能在方法內部使用(糾正我,如果我錯了)。如何從觸摸事件之前已經開始的定時器獲取值?

scene.setOnSceneTouchListener(new IOnSceneTouchListener() { 
    public boolean onSceneTouchEvent(Scene scene, TouchEvent arg1) { 

    int counterInt = 60; 
    Timer timer = new Timer(); 
    counterText.setText(""+counterInt); 
    timer.wait(1000); 
    counterText.setText(""+(counterInt-1)); 
    timer.wait(1000); 
    counterText.setText(""+(counterInt-1)); 
    timer.wait(1000); 
    counterText.setText(""+(counterInt-1)); 
    } 
} 

let let counterInt的默認值是60,它的減少量是秒。當它顯示50個用戶觸摸屏幕,這意味着激活touchevent arg1,我怎麼能得到'50'counterInt的價值?謝謝...

+0

該計時器完全沒有什麼,直到你安排一個timerTask,其中是counterText.setText將去。我不知道andengine tho – L7ColWinters 2012-01-18 04:55:02

+0

感謝您的建議,我嘗試timertask後:) – epndkempot 2012-01-18 05:18:57

回答

0

如果你正在尋找類似的東西,你希望剩下的秒數比使用CountDownTimer更好。它的onTick()給你準確的時間開始計時器,並且當onFinish()內倒計數完成時,你可以做任何事情。

+0

謝謝你隊友,它給我的程序的希望... – epndkempot 2012-01-18 05:53:25

+1

@epndkempt如果你認爲他的anwser是正確的,你應該點擊答案按鈕在他的awnser得分下面。他會收到積分,問題將被標記爲回答。 – Rohan 2012-01-18 13:38:50

1

Theres使用AndEngine的框架更簡單的解決方案。我爲你創建了這個簡單的課程:here。創建它的一個實例,並將其註冊到您的場景中:

TimeCounter tc = new TimeCounter(); 
scene.registerUpdateHandler(tc); 

它將從該時刻開始計數。然後,您可以自由地調用tc.getSeconds()以查明經過了多少秒,並從任何常數值中減去它們以模擬倒計時。您也可以撥打reset來重置秒數。

相關問題