设置长按键监听器的持续时间

时间:2012-09-18 09:06:41

标签: android

我们可以为Long key press listener设置持续时间吗?我想要的是,如果用户持续触摸屏幕3秒钟,那么我的长按键监听器应该触发并打开我的弹出窗口进行设置。

提前致谢。

3 个答案:

答案 0 :(得分:1)

覆盖onTouch侦听器,然后在按下按钮期间处理按下,释放的事件并设置计时器(事件==“按下”)

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;
              }
           });

答案 1 :(得分:0)

在Long Press Listener中你可以设置一个具有3秒限制的处理程序,如果它达到3秒时间,那么你可以在其中运行你的方法或者使用默认方法

答案 2 :(得分:0)

从Android 2.0开始,Activity包含方法

public boolean onKeyLongPress(int keyCode, KeyEvent event)

例如,按下后退按钮上的长按键将是:

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

现在打开设置选项卡,您可以执行以下代码和活动...

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

有关详细信息you can visit以便更好地理解。

相关问题