如何从触摸事件之前已经启动的计时器获取值?

时间:2012-01-18 04:49:52

标签: android timer touch andengine

我想制作一个倒计时器,当在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));
    }
}

假设counterInt的默认数量为60,并且减少秒数。当它显示50个用户触摸屏幕,这意味着激活touchevent arg1,我如何获得具有' 50'?的counterInt的值谢谢......

2 个答案:

答案 0 :(得分:1)

使用AndEngine的框架,这是一种更简单的解决方案。我已经为你创建了这个简单的课程:here。创建它的实例,并在场景中注册它:

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

它将从那一刻开始计算。然后,您可以自由地调用tc.getSeconds()以查找经过的秒数,并从任何常量值中减去它们以模拟倒计时。

您也可以致电reset重设秒数。

答案 1 :(得分:0)

如果您正在寻找类似的东西,您希望剩余的秒数比使用CountDownTimer更好。它的onTick()为您提供计时器启动时剩余的确切时间,并且当倒计时在onFinish()内完成时您也可以执行任何操作。