Làm cách nào để tôi có thể nghe khi ấn Button
?Người nghe để nhấn và nhả nút
Trả lời
Bạn có thể sử dụng một 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' cũng sẽ được xử lý dưới dạng sự kiện phát hành nút (giống như cách 'ACTION_UP') khi nó được kích hoạt khi bạn thực hiện một số cử chỉ sau khi nhấn nút (sự kiện' ACTION_UP' không được kích hoạt trong trường hợp này). – user2137020
Nếu bất kỳ ai thắc mắc, trên một Chế độ xem thông thường, những điều này không tương ứng với 'ACTION_BUTTON_PRESS' và' ACTION_BUTTON_RELEASE'. Nghĩ rằng cả hai có thể bao gồm các hành động 'DOWN',' UP' và 'CANCEL'. –
onTouchListener
là những gì bạn đang tìm kiếm.
Bạn sẽ cần sử dụng đúng MotionEvent
.
Điều này sẽ cho phép bạn xử lý các loại "chạm" khác nhau.
Câu trả lời được đưa ra bởi fiddler là chính xác cho chế độ xem chung.
Đối với một Button
, bạn nên trở false
từ xử lý cảm ứng luôn:
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;
}
});
Nếu bạn quay trở lại true
bạn sẽ phá vỡ chế liên lạc thường xuyên của nút. Điều đó có nghĩa là bạn sẽ làm mất hiệu ứng hình ảnh của việc nhấn nút xuống và chạm vào gợn sóng. Ngoài ra, Button#isPressed()
sẽ trả lại false
trong khi nút thực sự được nhấn.
Xử lý cảm ứng thông thường của nút sẽ đảm bảo rằng bạn nhận được các sự kiện tiếp theo ngay cả khi trả lại false
.
- 1. Maven pom.xml, SCM và nhả
- 2. Nút đầu vào của jQuery, nhấn vào nút nghe sự kiện
- 3. Làm cách nào để làm người nghe cho nút hủy ngày tháng trong Android?
- 4. Hủy AsyncTask khi người dùng nhấn lại nút
- 5. Ngừng người dùng nhấn hai nút cùng một lúc?
- 6. cách đính kèm một người nghe vào nút radio
- 7. UISeachBar phát hiện khi người dùng nhấn nút
- 8. Android - Nghe nút bị tắt
- 9. thêm người nghe vs người nghe đã đặt
- 10. Nút nhấn trong android
- 11. Cách thêm trình nghe hành động nghe nhiều nút
- 12. Thêm người nghe vào ArrayList
- 13. Chọn nút trong khi nhấn nút enter
- 14. người nghe để xóa thẻ sd
- 15. Làm cách nào để phát hiện khi người dùng đã nhấn nút tắt nguồn?
- 16. Làm cách nào để mở ứng dụng Cài đặt khi người dùng nhấn một nút?
- 17. Xem nơi ARC đang chèn giữ và nhả
- 18. Làm cách nào để tắt nút trình duyệt sau khi người dùng nhấn đăng xuất và hủy phiên?
- 19. NotSerializableException khi nhấn nút home
- 20. Trình nghe hành động trên nút radio
- 21. Nút tròn trong android .. tránh nhấn "bên ngoài" nút?
- 22. Cạo một trang web và điều hướng bằng nút nhấn
- 23. Nút Android chọn và nhấn có thể draw
- 24. Nhấn nhiều nút cùng một lúc
- 25. ExtJS loại bỏ người nghe
- 26. onNewIntent() vòng đời và người nghe đã đăng ký
- 27. ZeroMQ - Nhiều nhà xuất bản và người nghe
- 28. Google maps apiv3 'click' và 'dragend' người nghe đơn
- 29. Trình nghe Android để phát hiện khi màn hình đang được nhấn
- 30. kích hoạt ứng dụng khi nhấn nút nguồn
kiểm tra sự kiện onTouchListiner – vinaykumar