如何分离 Button Longpress Button press Up 和 Down 事件
How to separate Button Longpress Button press Up and Down events
我有点击功能和长按同一个按钮。实现了长按事件,但是,我需要分别找到按钮 UP_EVENT 和 DOWN_EVENTS。
如何使用 OnLongClickListener
来实现
View.OnLongClickListener listener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
return true;
}
};
Implement a TouchListener within the onLongClickListener:
View.OnLongClickListener listener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
return true; // if you want to handle the touch event
case MotionEvent.ACTION_UP:
// RELEASED
return true; // if you want to handle the touch event
}
return false;
}
});
return true;
}
};
要检测 ACTION_UP
和 ACTION_DOWN
事件,您需要实施 OnTouchListener
。
要分开,可以这样
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
if (isOnClick) {
//TODO onClick code
}
break;
case MotionEvent.ACTION_MOVE:
}
break;
default:
break;
}
return true;
}
我有点击功能和长按同一个按钮。实现了长按事件,但是,我需要分别找到按钮 UP_EVENT 和 DOWN_EVENTS。
如何使用 OnLongClickListener
View.OnLongClickListener listener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
return true;
}
};
Implement a TouchListener within the onLongClickListener:
View.OnLongClickListener listener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
return true; // if you want to handle the touch event
case MotionEvent.ACTION_UP:
// RELEASED
return true; // if you want to handle the touch event
}
return false;
}
});
return true;
}
};
要检测 ACTION_UP
和 ACTION_DOWN
事件,您需要实施 OnTouchListener
。
要分开,可以这样
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
if (isOnClick) {
//TODO onClick code
}
break;
case MotionEvent.ACTION_MOVE:
}
break;
default:
break;
}
return true;
}