2012-09-18 102 views
1

我们可以设置长按键监听程序的持续时间吗?我想要的是,如果用户持续触摸屏幕3秒,那么我的长按键听众应触发并打开弹出式设置。设置长按键监听程序的持续时间

在此先感谢。

+0

设置是你的应用程序设置或android设置选项卡? –

回答

0

里面长按监听ü可以设置一个处理程序有3秒限制,如果达到3秒的时间,然后ü可以在它运行的方法要么做默认方法

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

谢谢Yahor10你可以给我你的.. .. startTimer()和getTimer()如何实现或其完整代码的实现在此先感谢 –

+0

看到此更新 – Yahor10

+0

感谢您的帮助,但它不履行我的问题,我想如果用户持有触摸N秒后,我的东西会去......就像用户触摸并保持触摸3秒钟,然后我的功能会调用....任何想法???(保持屏幕触摸N秒) –

0

期间释放事件,并设置计时器从Android 2.0的,活动包含方法

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为了更好的理解。

+0

需要一个解决方案如果长按等于3秒 –