オプション項目を選択すると、システムはオプションメニューを閉じます。これは、onOptionsItemSelected()の実行後に発生します。私はあなたが実行する必要があることは、そのプロセス全体が完了するためだと推測していますオプションメニューがプログラムで再度オープンされているので、onPrepareOptionsMenu()が呼び出されます。ユーザーが、オプションの「2つのオプションを追加」あなたの活動にフラグを設定するが、何かをしない選択した場合には、)(onOptionsItemSelectedで
:
はこれを試してみてください。
onOptionsMenuClosed()をオーバーライドします。フラグが設定されているかどうかを確認します。そうであれば、その次のパスでUIスレッドによって実行されるべき投稿です。何もしないで、オプションメニューを再度開く必要があります。
runOnUiThread(新しいRunnableを(){ @Override公共ボイドラン(){ openOptionsMenu();} })。
onPrepareOptionsMenu()をオーバーライドします。フラグが設定されているかどうかを確認します。そうであれば、2つの追加メニュー項目を追加し、フラグを設定解除します。 「アイテムを追加する」メニュー項目が押されるたびに新しい項目を追加し続けるのを防ぐために、あなたが探している動作でない限り、いくつかの追加作業を行う必要があります。
出典
2013-06-22 13:33:30
jph
開いている間にメニューを更新しますか?プログラム上で(メニューボタンを押さずに)隠して表示しようとしたので、onPrepareOptionsMenuが呼び出されましたか? – Sver
はい、OpenOptionsMenu()の後にCloseOptionsMenu()を使用してこの方法を試しました。これはメニューを閉じ、準備を呼び出すが、もう一度開かない。 –
サブメニューの使用について考えましたか? (私はそれがあなたが望むようにメニューに追加されません知っているが、機能はあなたが探していると思われるものについてです)。 – Barak