Giả sử tôi muốn tạo trình xử lý sự kiện của riêng mình cho lớp học của mình, làm cách nào để thực hiện điều đó? Tôi có cần phải duy trì một sợi thủ công không?Trình xử lý sự kiện tùy chỉnh Android
Trả lời
public class CustomView extends View(){
OnCustomEventListener mListener;
:
://some code
:
:
Tạo một giao diện sẽ được thực hiện bởi hoạt động của bạn:
public interface OnCustomEventListener {
void onEvent();
}
public void setCustomEventListener(OnCustomEventListener eventListener) {
mListener = eventListener;
}
Bây giờ bạn cần phải biết khi nào sự kiện này thực sự xảy ra. Ví dụ: khi người dùng chạm vào một điểm trên màn hình, hãy ghi đè phương thức onTouchEvent:
onTouchEvent(MotionEvent ev) {
if (ev.getAction==MotionEvent.ACTION_DOWN) {
if(mListener!=null)
mListener.onEvent();
}
}
Tương tự, bạn có thể tạo sự kiện cụ thể mà bạn muốn. (ví dụ có thể được chạm xuống, chờ đợi chính xác 2 giây và phát hành - bạn sẽ cần phải làm một số logic bên trong sự kiện cảm ứng).
Trong hoạt động của bạn, bạn có thể sử dụng đối tượng customView để thiết lập một eventListener như vậy:
customView.setCustomEventListener(new OnCustomEventListener() {
public void onEvent() {
//do whatever you want to do when the event is performed.
}
});
Are ngoặc vào định nghĩa giao diện OnCustomEventListener một lỗi đánh máy? –
Rất tiếc! có nó là một lỗi đánh máy, sửa chữa nó. cảm ơn – rDroid
rDroid, cảm ơn ví dụ! Giao diện OnCustomEventListener có nên được khai báo bên trong hoặc bên ngoài lớp CustomView không? – Brabbeldas
Nó có thể được thực hiện theo cách sau
Đầu tiên tạo ra một lớp giao diện:
public interface OnStopTrackEventListener {
public void onStopTrack();
}
Sau đó, tạo lớp kiểm soát giao diện:
public class Player {
private OnStopTrackEventListener mOnStopTrackEventListener;
public void setOnStopTrackEventListener(OnStopTrackEventListener eventListener)
{
mOnStopTrackEventListener = eventListener;
}
public void stop()
{
if(mOnStopTrackEventListener != null)
{
mOnStopTrackEventListener.onStopTrack();
}
}
}
Đó là tất cả. Hãy sử dụng nó bây giờ
Player player = new Player();
player.stop(); //We are stopping music
player.setOnStopTrackEventListener(new OnStopTrackEventListener() {
@Override
public void onStopTrack() {
//Code to work when music stops
}
});
Mã đẹp. – Dskato
- 1. Trình xử lý sự kiện tùy chỉnh JavaScript
- 2. WPF - Xử lý sự kiện tùy chỉnh gắn trên tùy chỉnh điều khiển
- 3. Dojo: Cách chuyển thông số tùy chỉnh cho trình xử lý sự kiện
- 4. Trình xử lý gọi lại tùy chỉnh
- 5. Sự khác biệt giữa Trình xử lý sự kiện & Trình xử lý sự kiện trong Java là gì?
- 6. Sự khác biệt, nếu có, giữa trình xử lý sự kiện và trình xử lý sự kiện?
- 7. Android xử lý sự kiện GUI như thế nào?
- 8. Xử lý tăng sự kiện trong Java
- 9. Cách xử lý các sự kiện jQuery tùy chỉnh trong Meteor?
- 10. Sự kiện tùy chỉnh bong bóng xuống
- 11. Vô hiệu hóa ngClick xử lý sự kiện trong một chỉ thị tùy chỉnh
- 12. Tùy chỉnh xử lý lỗi của quy trình unmarshall JAXB
- 13. Delphi VCL cho Win32 - nhiều trình xử lý sự kiện
- 14. Thêm xử lý sự kiện riêng trước xử lý sự kiện khác
- 15. Delphi và ngăn sự kiện xử lý
- 16. Thêm trình xử lý sự kiện nhấp chuột vào Pushpin
- 17. Xử lý mục menu Nhấp vào Sự kiện - Android
- 18. Xử lý tất cả các sự kiện chuột trong Android
- 19. Trình xử lý giao thức URL tùy chỉnh Qt 5
- 20. Trình xử lý giao thức tùy chỉnh trong chrome
- 21. error_get_last() và trình xử lý lỗi tùy chỉnh
- 22. Đa xử lý Python: Nhóm các quy trình tùy chỉnh
- 23. Xử lý ngày tùy chỉnh WebApi Json.NET
- 24. IE8 onclick xử lý sự kiện
- 25. C# Gỡ bỏ rõ ràng Trình xử lý sự kiện
- 26. Tạo trình xử lý sự kiện C# trống
- 27. Chuyển hướng Symfony2 cho trình xử lý sự kiện?
- 28. Trình xử lý sự kiện nhấn nút dài
- 29. Google Maps v3 InfoBox Thêm Trình xử lý Sự kiện
- 30. Trình xử lý sự kiện không được gọi? - wxWidgets
Xem chủ đề codepath [Tạo Listeners Custom] (https://guides.codepath.com/android/Creating-Custom-Listeners) – Suragch