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