Android提供的onKey(),OnKeyDown()和dispatchKeyEvent()方法有什麼區別?
我想知道什麼時候和在哪裏可以使用。
請說明一下。Android提供的onKey(),OnKeyDown()和dispatchKeyEvent()方法之間的區別?
27
A
回答
41
追蹤5.1 Source for the View Class的源代碼。看起來dispatchKeyEvent()
是系統調用的第一種方法。重載它將阻止任何和所有關鍵事件被調用,除非調用基礎版本。
dispatchKeyEvent()
的第一步是嘗試將事件傳遞給onKeyListener
(如果有的話)。這是在調用onKey()
時。如果onKey()
執行返回true
,dispatchKeyEvent()
將返回那裏,其他事件將不會被調用。
如果沒有onKeyListener
或onKeyListener
的onKey()
方法返回false
,然後dispatchKeyEvent()
將調用KeyEvent
的dispatch()
方法。然後,它將依次調用視圖中的KeyEvent.Callback
界面中的所有方法。這包括onKeyDown()
和onKeyUp()
。
相關問題
- 1. 事件和方法之間的區別
- 2. getRootNav()和navCtrl()方法之間的區別
- 3. 「__method__」和「方法」之間的區別
- 4. PrintWriter.printf和PrintWriter.format方法之間的區別
- 5. EventLog.WriteEntry和EventLog.WriteEvent方法之間的區別
- 6. doGet和doHead方法之間的區別
- 7. Map.put和Map.putAll方法之間的區別?
- 8. GET和POST方法之間的區別?
- 9. $ http.get和方法之間的區別:'GET'
- 10. Android服務與內容提供者之間的區別
- 11. 在android中的httppost和httpget方法之間的區別?
- 12. ThreadPoolExecutor - 提交和執行方法之間的區別?
- 13. 什麼@android之間的區別:和android:
- 14. 驅動程序和提供程序之間的區別
- 15. Maven範圍編譯和提供JAR包裝之間的區別
- 16. 夾具和數據提供者之間的區別yii2
- 17. onKey onKeyDown無法正常工作
- 18. Onkeydown返回false和返回super.onkeydown()之間有什麼區別?
- 19. CA2000的級別變量和方法之間的區別警告
- 20. 類方法和實例方法之間的區別?
- 21. 下劃線js之間的區別_each方法和_.invoke方法
- 22. 跟進:類方法和實例方法之間的區別?
- 23. UdpClient.Send方法和UdpClient.Client.Send方法之間的區別
- 24. android sha224和python之間的區別sha224
- 25. onPeriodicNotification和onMarkerReached之間的區別 - Android
- 26. @id和@android之間的區別:id
- 27. Android中SQLiteException和SQLException之間的區別?
- 28. 離子和Android之間的區別sdk
- 29. TextView- setHeight和setTextSize之間的區別:Android
- 30. style.xml和theme.xml android studio之間的區別?
不能說更好! – faizal
很好的解釋! – ForeverLearning
因此,我可以不使用'onKeyDown'和'onKeyUp',而只是使用'dispatchKeyEvent'?這有什麼缺點嗎?我必須這樣做,因爲'onKeyDown'不會因爲某些原因而觸發大部分的鍵。當我更改爲'dispatchKeyEvent'時,它工作。 – keinabel