知道按钮保持的时间 [英] Know the time that a button is Holding

查看:76
本文介绍了知道按钮保持的时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望当您在3秒钟内按住某个按钮时可以执行一些操作,我尝试使用上面的代码,但是仅当我在按住期间停止不按住时,它才会执行某些操作.我应该实现一个监听器或类似的东西吗?

I want that when you are holding a button during 3 secs do something, I try with the code above but it only do semething when I stop holding not during the hold. Should I implement a listener or something like this?

finishPushing = true;
.
.
.    

button.setOnTouchListener(new OnTouchListener()
            {

                @Override
                public boolean onTouch(View v, MotionEvent event) {

                    if(android.os.SystemClock.elapsedRealtime() - event.getDownTime() > 3000 && (event.getPointerCount() == 1) && finishPushing)
                    {
                        // Do something                     

                        finishPushing = false;
                    }
                    else{
                        finishPushing = true;
                    }
                    return false;
                }

            });

推荐答案

通过 Android Touch得以解决事件确定持续时间

        button.setOnTouchListener(new OnTouchListener()
        {
            private final Handler handler = new Handler();
            private final Runnable runnable = new Runnable() {
                public void run() {
                     if(mBooleanIsPressed)
                     {
                         // do whatever
                     }
                }
            };


            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_DOWN) {
                    // Execute your Runnable after 5000 milliseconds = 5 seconds.
//After this 5secs it will check if is pressed
                    handler.postDelayed(runnable, 5000);    
                    mBooleanIsPressed = true;               
                }

                if(event.getAction() == MotionEvent.ACTION_UP) {
                    if(mBooleanIsPressed) {
                        mBooleanIsPressed = false;
                        handler.removeCallbacks(runnable);
                    }
                }
                return false;
            }
        });

这篇关于知道按钮保持的时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆