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
S dispatch()
方法のonKey()
方法は、その後KeyEvent
呼び出しますfalse
、dispatchKeyEvent()
を返さ 'の場合。次に、ビュー上のKeyEvent.Callback
インターフェイスのすべてのメソッドを呼び出します。これには、onKeyDown()
とonKeyUp()
が含まれます。
はそれほど良いとは言えません! – faizal
すばらしい説明! – ForeverLearning
したがって、 'onKeyDown'と' onKeyUp'の両方を使う代わりに 'dispatchKeyEvent'を使うこともできますか?これには欠点がありますか?なんらかの理由で、 'onKeyDown'がほとんどのキーに対してトリガされないので、私はこれをしなければなりませんでした。私は 'dispatchKeyEvent'に変更したときに動作しました。 – keinabel