¿Cuál es la diferencia entre los métodos onKey(), OnKeyDown() y dispatchKeyEvent() proporcionados por Android?
Me gustaría saber cuándo y dónde se puede usar cada uno de estos.
Por favor, arroja algo de luz sobre esto.Diferencia entre los métodos onKey(), OnKeyDown() y dispatchKeyEvent() proporcionados por Android?
Q
Diferencia entre los métodos onKey(), OnKeyDown() y dispatchKeyEvent() proporcionados por Android?
27
A
Respuesta
41
Seguimiento del código fuente del 5.1 Source for the View Class. Parece que dispatchKeyEvent()
es el primer método llamado por el sistema. Sobrecargarlo evitará que se invoquen todos los eventos clave a menos que se llame a la versión base.
dispatchKeyEvent()
El primer paso es intentar pasar el evento a onKeyListener
si hay uno. Esto es cuando se llama onKey()
. Si la implementación onKey()
devuelve true
, dispatchKeyEvent()
volverá allí y no se invocarán otros eventos.
Si no hay onKeyListener
o la onKeyListener
'onKey()
método s volvió false
, dispatchKeyEvent()
luego llamar a la KeyEvent
' dispatch()
método s. Que a su vez llamará a todos los métodos en la interfaz KeyEvent.Callback
en su vista. Esto incluye onKeyDown()
y onKeyUp()
.
Cuestiones relacionadas
- 1. dónde y cómo usar onKey, onkeyDown, onKeyPressed evento en android?
- 2. Diferencia entre los métodos Map.put y Map.putAll?
- 3. Diferencia entre los métodos EventLog.WriteEntry y EventLog.WriteEvent
- 4. Diferencia entre eventos y métodos
- 5. diferencia entre + y - métodos en Objective-C
- 6. Diferencia entre los métodos preferenciales onCreateView y onBindView
- 7. ¿Diferencia entre Scrum y otros métodos ágiles?
- 8. diferencia entre los métodos de recursos y recursos
- 9. Diferencia entre los métodos de UIWebView loadHTMLString: y loadRequest
- 10. JavaScript: Diferencia entre los métodos toString() y toLocaleString() de Fecha
- 11. ¿Cuál es la diferencia entre los métodos iterator y view?
- 12. diferencia entre los métodos php is_int y is_integer
- 13. Diferencia entre los métodos this.Dispatcher.BeginInvoke() y Deployment.Current.Dispatcher.BeginInvoke() en Silverlight
- 14. Diferencia entre GL10 y GLES10 en Android
- 15. objetivo c diferencia entre funciones y métodos
- 16. diferencia entre Android: anchura y android: layout_width
- 17. ¿Cuál es la diferencia entre los métodos invalidate() y postInvalidate() de Android?
- 18. onKeyDown no siempre se llama en la aplicación de Android
- 19. ¿Diferencia entre los términos de Android?
- 20. Diferencia entre los métodos de conversión/fundición en C#
- 21. diferencia entre los métodos que establecen UIButton imagen
- 22. Diferencia entre versionName y versionNumber en Android
- 23. ¿Por qué onKey() se llama dos veces?
- 24. Android: ¿diferencia entre canvas.drawBitmap y BitmapDrawable.draw?
- 25. cifrado RSA: Diferencia entre Java y Android
- 26. Diferencia entre los métodos de impresión/formato de Python
- 27. Diferencia entre tarea y proceso en Android
- 28. ambigüedad entre los métodos
- 29. ¿Cuál es la diferencia entre los archivos .class y .dex?
- 30. diferencia entre las expresiones lambda y métodos anónimos - C#
no puede decirse nada mejor! – faizal
¡Gran explicación! – ForeverLearning
Entonces, en lugar de usar tanto 'onKeyDown' como' onKeyUp', ¿podría simplemente usar 'dispatchKeyEvent'? ¿Esto tiene algún inconveniente? Tenía que hacer esto, porque 'onKeyDown' no se activaría para la mayoría de las teclas, por alguna razón. Cuando cambié a 'dispatchKeyEvent', funcionó. – keinabel