0

アクティビティに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);
}

私も真と偽を返そうとしましたが、運はありませんでした。

4

1 に答える 1

0

表示されているのは、 の正確な意図された動作ですOnPrepareOptionsMenu。メニューが表示された後ではなく、表示されるに実行されます。

于 2013-03-12T11:19:49.943 に答える