如何聆聽何時按下並釋放了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. 按鈕按下和釋放的動作
- 5. 對象過度釋放按鈕按下
- 6. 如何釋放按下的java按鈕
- 7. 動作按鈕按下和釋放
- 8. 的Android按鈕釋放按下
- 9. Cocos2d-iphone:手柄按鈕按下並釋放
- 10. 更改圖像按鈕當按下並釋放圖像時
- 11. 的ICommand按鈕按下並釋放在MVVM風格
- 12. 如何檢測何時按下按鈕並在android上釋放
- 13. 如何聆聽按鍵盤上的更多按鈕?
- 14. 離子如何實現按下按鈕,釋放,拖放事件?
- 15. Slick2D按鈕釋放並調用函數
- 16. 如何做按鈕保持按下並在點擊另一個按鈕後釋放該按鈕?
- 17. 如何聆聽按鈕動作添加組合框並再次聆聽動作Java
- 18. 鼠標按下並釋放窗口
- 19. UWP檢測鍵盤按下並釋放
- 20. 如何聆聽特定的按鈕按鈕和主視圖用戶交互?
- 21. android edittext onchange聆聽者
- 22. php的聆聽者頁面
- 23. Fmod聆聽者位置
- 24. OnClick監聽器按鈕按下狀態
- 25. c#按鍵在後臺聆聽
- 26. 如何聆聽鼠標輪按?
- 27. 聽按鍵或按鈕按
- 28. DropDownChoice並按下BACK按鈕
- 29. Xcode(IOS)按鈕的按下和釋放檢測
- 30. 檢測音量按鈕按下和釋放的iOS
檢查onTouchListiner – vinaykumar 2012-08-02 14:04:08