Qual è la differenza tra i metodi onKey(), OnKeyDown() e dispatchKeyEvent() forniti da Android?
Mi piacerebbe sapere quando e dove ognuno di questi può essere utilizzato.
Per favore, fai un po 'di luce in questo.Differenza tra i metodi onKey(), OnKeyDown() e dispatchKeyEvent() forniti da Android?
risposta
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()
.
- 1. dove e come utilizzare onKey, onkeyDown, onKeyErrore evento in Android?
- 2. Differenza tra i metodi GET e POST?
- 3. Differenza tra i metodi EventLog.WriteEntry e EventLog.WriteEvent
- 4. Differenza tra eventi e metodi
- 5. Differenza tra metodi virtuali e astratte
- 6. Qual è la differenza tra i metodi Html.Partial e Html.Action?
- 7. Differenza tra + e - metodi in Objective-C
- 8. JavaScript: Differenza tra i metodi toString() e toLocaleString() di Data
- 9. AngularJS: Differenza tra i metodi $ observ e $ watch
- 10. Differenza tra i metodi jquery.simulate.js e jQuery evento?
- 11. Java: Differenza tra i metodi setPreferredSize() e setSize() nei componenti
- 12. Qual è la differenza tra i metodi iteratore e vista?
- 13. differenza tra i metodi di risorse e di risorse
- 14. Differenza tra Scrum e altri metodi Agile?
- 15. Dovresti usare i metodi "Verifica" e "Verifica tutti" forniti da Moq nei tuoi Test di unità?
- 16. differenza tra i metodi per ridimensionare una bitmap
- 17. Qual è la differenza tra i metodi invalidate() e postInvalidate() di Android?
- 18. Differenza tra Android: larghezza e Android: layout_width
- 19. onKeyDown e onKeyLongPress
- 20. Differenza tra android: id e android: labelFor?
- 21. Differenza tra Android: layout_alignParentTop e Android: layout_alignParentStart
- 22. Differenza tra Android: windowBackground e Android: colorBackground?
- 23. Qual è la differenza tra i metodi definiti e metodi si fa riferimento in studio di Android Apk Analyzer
- 24. C# I/O - Differenza tra System.IO.File e StreamWeader/StreamReader
- 25. Vulkan: la differenza tra vkGetInstanceProcAddress e vkGetDeviceProcAddress
- 26. Differenza tra le espressioni lambda e metodi anonimi - C#
- 27. Differenza tra i termini di Android?
- 28. Qual è la differenza tra metodi dinamici e virtuali?
- 29. Differenza tra callback client e metodi pagina Ajax - ASP.NET
- 30. Differenza tra KeyEventArgs.systemKey e KeyEventArgs.Key
non si può dire meglio! – faizal
Ottima spiegazione! – ForeverLearning
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