如何聆听何时按下并释放了Button
?聆听者按下并释放按钮
回答
您可以使用onTouchListener
:
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;
}
});
'MotionEvent.ACTION_CANCEL'事件也应该作为按钮释放事件(与'ACTION_UP'相同的方式)处理,因为按下按钮后执行某个手势时会触发事件('ACTION_UP'事件未被触发在这种情况下)。 – user2137020 2016-01-09 20:18:23
如果有人想知道,在常规视图中,这些不符合'ACTION_BUTTON_PRESS'和'ACTION_BUTTON_RELEASE'。认为这两个可能包含“DOWN”,“UP”和“CANCEL”动作。 – 2016-11-16 08:27:16
onTouchListener
是你在找什么。您需要使用正确的MotionEvent
。
这将允许您处理不同类型的“触摸”。
fiddler给出的答案对于通用视图是正确的。
对于Button
,你应该从触摸处理器总是返回false
:
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
// RELEASED
break;
}
return false;
}
});
如果返回true
你会绕过该按钮的常规触摸处理。这意味着你将失去按下按钮和触摸波纹的视觉效果。此外,Button#isPressed()
将返回false
而按钮实际上按下。
按钮的定期触摸处理将确保即使在返回false
时也能得到后续事件。
- 1. onclick android的按钮聆听者
- 2. 按钮按下并释放动作(php)
- 3. LWUIT按钮被按下并释放
- 4. 的Android按钮释放按下
- 5. 如何检测何时按下按钮并在android上释放
- 6. 的ICommand按钮按下并释放在MVVM风格
- 7. 离子如何实现按下按钮,释放,拖放事件?
- 8. 如何做按钮保持按下并在点击另一个按钮后释放该按钮?
- 9. 如何聆听按钮动作添加组合框并再次聆听动作Java
- 10. UWP检测键盘按下并释放
- 11. 鼠标按下并释放窗口
- 12. 如何聆听特定的按钮按钮和主视图用户交互?
- 13. php的聆听者页面
- 14. 如何聆听鼠标轮按?
- 15. 听按键或按钮按
- 16. DropDownChoice并按下BACK按钮
- 17. 监听HOME按钮按下并重新启动活动
- 18. 如何检测笔按钮按下和释放事件
- 19. 如何知道按钮是否被按下或释放?
- 20. WebdriverIO:按下按钮,移动鼠标然后释放?
- 21. 从屏幕上按下没有释放手指的按钮
- 22. 如何聆听是否使用ExtJS检查单选按钮?
- 23. Android - 如何在alertdialog中按下按钮并按下按钮是或否按钮
- 24. 检查按钮按下并输入按
- 25. 如何聆听Java中按下/键入的TAB键?
- 26. 动作监听器放大按钮
- 27. 同时按下按钮播放声音
- 28. Xcode 6 - 按下按钮播放声音
- 29. 按下按钮时播放音频
- 30. 在按下按钮播放声音-Android
检查onTouchListiner – vinaykumar 2012-08-02 14:04:08