在我的timerproject中实现onTouch事件

时间:2012-11-28 17:32:00

标签: javascript android ontouchevent ontouchlistener countdowntimer

我有一个计时器,我想在按住按钮时启动,并在我放手时重置计时器。有可能使用onClick但我无法真正弄清楚如何在这个项目中使用onTouch事件。第一个代码片段工作,但如何实现触摸而不是以asy方式单击?

 @Override

    public void onClick(View v)
        {
            if (!timerHasStarted)
                {
                    countDownTimer.start();
                    timerHasStarted = true;
                    startB.setText("Start");

                }
            else
                {

                    countDownTimer.cancel();
                    timerHasStarted = false;
                    startB.setText("RESET");
                }
        }

        public boolean onTouch(View v, MotionEvent event) {

        final float mouseSensitivity = 0.5f;

        if(event.getAction()==MotionEvent.ACTION_DOWN){
            countDownTimer.start();
            timerHasStarted = true;
        } else if(event.getAction()==MotionEvent.ACTION_UP){
            countDownTimer.cancel();
            timerHasStarted = false;


        }
        return timerHasStarted; } }

public void onTouch(View v, MotionEvent event) {

       // final float mouseSensitivity = 0.5f;

        if(event.getAction()==MotionEvent.ACTION_DOWN){
            countDownTimer.start();
            timerHasStarted = true;
        } else if(event.getAction()==MotionEvent.ACTION_UP){
            countDownTimer.cancel();
            timerHasStarted = false;


        }
    }

1 个答案:

答案 0 :(得分:0)

确保你通过addind @override注释覆盖onTouch,第二个实现肯定不会,因为onTouch总是返回boolean。

确保您接到来电,而没有其他人。将视图的onTouchListener设置为您的对象,或者使用您自己的类扩展View并实现onTouchEvent

考虑是否需要检查视图实际上是提到的按钮

还要处理MotionEvent.CANCEL,因为这种情况时不时发生,你可能想要做一些事情。可以跳过MotionEvent.MOVE,因为在发生这种情况时你不想做任何事情。

onTouch应该返回它是否处理事件,而不是个人计时器的状态。