Set Duration of Long Key press Listener

前端 未结 3 2002
我在风中等你
我在风中等你 2021-01-23 11:33

Can we set duration for Long key press listener? What i want is, if user keeps touching the screen for 3 sec then my long key press listener should trigger and open my pop up fo

相关标签:
3条回答
  • 2021-01-23 11:41

    Inside the Long Press Listener u can set a Handler with 3 Sec Limit and if it reaches 3 sec time then u can run your method in it or else make default method

    0 讨论(0)
  • 2021-01-23 11:58

    From Android 2.0, Activity contains the method

    public boolean onKeyLongPress(int keyCode, KeyEvent event)
    

    For exemple, a long key press on the back button would be :

    @override
    public boolean onKeyLongPress(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) 
        {
            // do your stuff here
            return true;
        }
        return super.onKeyLongPress(keyCode, event);
    }
    

    Now to open the setting tab you can do following code inside and activity...

    Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    activityContext.startActivity(intent);
    

    For detail you can visit for better understanding.

    0 讨论(0)
  • 2021-01-23 12:02

    Override onTouch Listener ,then handle pressed,released event and set timer during button pressed (event == "pressed")

    private Timer timer;
    
     public LongClickTimer(int seconds) {
                timer = new Timer();
                timer.schedule(new LongClickTask(), seconds *1000);         
            }
     class LongClickTask extends TimerTask {
                public void run() { 
                 // do what you want            
                    timer.cancel(); 
                }
            }
         button.setOnTouchListener(new OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    Log.v(TAG, "EVENT" + event.toString());
                        if(event.getAction == 2) {// pressed                        
                        new LongClickTimer(5); // schedule for 5 seconds
                        }else{          
                         timer.cancel();
                        }
                   return false;
                  }
               });
    
    0 讨论(0)
提交回复
热议问题