2011-10-21 12 views

Odpowiedz

41

Śledzenie kodu źródłowego 5.1 Source for the View Class. Wydawałoby się, że dispatchKeyEvent() jest pierwszą metodą wywoływaną przez system. Przeciążenie go uniemożliwi wywołanie wszystkich kluczowych zdarzeń, chyba że wywołana zostanie wersja podstawowa.

dispatchKeyEvent() Pierwszy ruch to próba przekazania wydarzenia na numer onKeyListener, jeśli taki istnieje. To jest, gdy wywoływana jest onKey(). Jeśli implementacja onKey() zwróci true, nastąpi powrót do tej opcji, dispatchKeyEvent(), a inne zdarzenia nie zostaną wywołane.

Jeśli nie ma onKeyListener lub onKeyListener 'onKey() metoda s zwrócone false, dispatchKeyEvent() wtedy nazywamy KeyEvent' dispatch() metoda s. Który z kolei wywoła wszystkie metody interfejsu KeyEvent.Callback w twoim widoku. Obejmuje to onKeyDown() i onKeyUp().

+0

nie można powiedzieć nic lepszego! – faizal

+0

Świetne wyjaśnienie! – ForeverLearning

+0

Więc zamiast używać zarówno 'onKeyDown', jak i' onKeyUp', mógłbym również użyć 'dispatchKeyEvent'? Czy to ma jakieś wady? Musiałem to zrobić, ponieważ 'onKeyDown' nie zostałby wywołany dla większości kluczy, z jakiegoś powodu. Kiedy zmieniłem na 'dispatchKeyEvent', zadziałało. – keinabel

Powiązane problemy