アクティビティにonPrepareOptionsMenu()を実装すると、最初のプレスが適切に機能することに気付きました。onPrepareOptionsMenu()からのコールバックが開始されます。しかし、それがまだ表示されていて(ダイアログを開く)、2回押すと閉じる(コールバックをトリガーしてダイアログを閉じる)場合、メニューボタンを2回押すとonPrepareOptionsMenu()がトリガーされません。理由がわからない
これが私がそれを実装する方法です:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (onDoneListener != null) {
onDoneListener.OnDone();
}
return false;
}
編集1:
コメント投稿者のヘルプの後に次の関数を追加しましたが、それでもうまくいきません。OnKeyDown()も次のメニューボタンの押下を受け取りません。戻るボタンを押すまで、メニューボタンはイベントを取得しないようです。コードは次のとおりです。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
if (onDoneListener != null)
onDoneListener.onDone();
}
return super.onKeyDown(keyCode, event);
}
私も真と偽を返そうとしましたが、運はありませんでした。