2012-01-27 9 views
1

メニューが画面上にあるときに、コード内の特定のフラグを設定したいと考えています。私は、メニューが表示される時を検出するためにonKeyDownのkeyCode == KeyEvent.KEYCODE_MENUイベントをキャッチしようとしましたが、メニューボタンが2回目に押されると(メニューが消える)、keyCode == KeyEvent.KEYCODE_MENUイベントはありません。メニューボタンが2回目に押されたことを検出しました。

他のイベントを探すか、何らかのメニューが表示されているかどうかをテストする機能がありますか?

+0

自宅、最近、電源ボタンを簡単に検出する方法を確認してください。 [this](http://stackoverflow.com/a/29648460/1071545) –

答えて

2

開かれているメニューをキャッチするには、あなたが閉鎖されているメニューをキャッチするために

public boolean onPrepareOptionsMenu(Menu menu) 

を上書きすることができ、あなたは

public void onOptionsMenuClosed(Menu menu) 

を上書きすることができますしかし、二つ目は両方と呼ばれることに注意してくださいユーザが「メニュー」ボタンを2回押すか、メニューオプションの1つをタップする。したがって、それを組み合わせて使用​​する必要があります

public boolean onOptionsItemSelected(MenuItem item) 
+0

をチェックしてください。私のケースでは動作しません。この参照先http://stackoverflow.com/questions/15652444/not-able-to-dismiss-the -alertdialog-when-press-menu-key-second-time –

+0

私は、何故pplが実際の間違った答えに顕著な答えを出すのかということは、非常に不調に思えます。 –

+1

@ArslanAhmadなぜこの答えが間違っていると思うかを説明してください。それは2年前に質問が尋ねられたときに完璧にうまくいった - それでもうまくいきます。 –

関連する問題