2011-10-21 6 views

risposta

41

Tracciamento del codice sorgente di 5.1 Source for the View Class. Sembrerebbe che dispatchKeyEvent() sia il primo metodo chiamato dal sistema. Il sovraccarico impedirà la chiamata di tutti gli eventi chiave a meno che non venga chiamata la versione base.

dispatchKeyEvent() La prima mossa consiste nel tentare di passare l'evento a onKeyListener se ce n'è uno. Questo è quando viene chiamato onKey(). Se l'implementazione onKey() restituisce true, dispatchKeyEvent() verrà restituito lì e non verranno chiamati altri eventi.

Se non c'è onKeyListener o onKeyListener 'metodo di s onKey() restituito false, dispatchKeyEvent() sarà quindi chiamare il KeyEvent' dispatch() metodo di s. Che poi a sua volta chiama tutti i metodi nell'interfaccia KeyEvent.Callback sulla tua vista. Questo include onKeyDown() e onKeyUp().

+0

non si può dire meglio! – faizal

+0

Ottima spiegazione! – ForeverLearning

+0

Quindi, invece di usare sia 'onKeyDown' che' onKeyUp', potrei anche usare 'dispatchKeyEvent'? Questo ha qualche inconveniente? Dovevo farlo, perché "onKeyDown" non sarebbe stato attivato per la maggior parte delle chiavi, per qualche motivo. Quando ho cambiato in 'dispatchKeyEvent', ha funzionato. – keinabel

Problemi correlati