2011-10-21 29 views

Trả lời

41

Truy tìm mã nguồn của 5.1 Source for the View Class. Có vẻ như dispatchKeyEvent() là phương pháp đầu tiên được gọi bởi hệ thống. Quá tải nó sẽ ngăn chặn bất kỳ và tất cả các sự kiện quan trọng từ được gọi là trừ khi phiên bản cơ sở được gọi là.

dispatchKeyEvent() Di chuyển đầu tiên của chúng tôi là cố gắng chuyển sự kiện đến onKeyListener nếu có. Đây là lúc onKey() được gọi. Nếu số trả lại thực hiện onKey()true, dispatchKeyEvent() sẽ trả lại ở đó và các sự kiện khác sẽ không được gọi.

Nếu không có onKeyListener hoặc onKeyListener 'onKey() phương pháp s trở false, dispatchKeyEvent() sau đó sẽ gọi KeyEvent' dispatch() phương pháp s. Mà sau đó sẽ lần lượt gọi tất cả các phương thức trong giao diện KeyEvent.Callback trên chế độ xem của bạn. Điều này bao gồm onKeyDown()onKeyUp().

+0

không thể nói tốt hơn! – faizal

+0

Giải thích tuyệt vời! – ForeverLearning

+0

Vì vậy, thay vì sử dụng cả hai 'onKeyDown' và' onKeyUp', tôi cũng có thể sử dụng 'dispatchKeyEvent'? Điều này có bất kỳ hạn chế nào không? Tôi đã phải làm điều này, bởi vì 'onKeyDown' sẽ không được kích hoạt cho hầu hết các phím, vì một lý do nào đó. Khi tôi thay đổi thành 'dispatchKeyEvent', nó đã hoạt động. – keinabel

Các vấn đề liên quan