0

にアイテムを追加します。アンドロイドOptionsMenu、私は今、この権利のように見えるoptionsmenuを持っているランタイム

enter image description here

は私が項目1をクリックした場合、私は見ているメニューに追加した2つの新しいアイテムが欲しいと言うことができますこのように:(それはオープンだが)onCreateOptionsMenuは一度だけ呼び出されるとonPrepareOptionsMenuは、携帯電話のメニューボタンがclickeある場合にのみ呼び出されるように思われるので、

enter image description here

私は、実行時にこれをやって問題を抱えていますd。私はちょうどそれがこれらの新しい項目を追加して更新することを望みます。

ありがとうございました!

+0

開いている間にメニューを更新しますか?プログラム上で(メニューボタンを押さずに)隠して表示しようとしたので、onPrepareOptionsMenuが呼び出されましたか? – Sver

+0

はい、OpenOptionsMenu()の後にCloseOptionsMenu()を使用してこの方法を試しました。これはメニューを閉じ、準備を呼び出すが、もう一度開かない。 –

+1

サブメニューの使用について考えましたか? (私はそれがあなたが望むようにメニューに追加されません知っているが、機能はあなたが探していると思われるものについてです)。 – Barak

答えて

0

オプション項目を選択すると、システムはオプションメニューを閉じます。これは、onOptionsItemSelected()の実行後に発生します。私はあなたが実行する必要があることは、そのプロセス全体が完了するためだと推測していますオプションメニューがプログラムで再度オープンされているので、onPrepareOptionsMenu()が呼び出されます。ユーザーが、オプションの「2つのオプションを追加」あなたの活動にフラグを設定するが、何かをしない選択した場合には、)(onOptionsItemSelectedで

  1. はこれを試してみてください。

  2. onOptionsMenuClosed()をオーバーライドします。フラグが設定されているかどうかを確認します。そうであれば、その次のパスでUIスレッドによって実行されるべき投稿です。何もしないで、オプションメニューを再度開く必要があります。

    runOnUiThread(新しいRunnableを(){ @Override公共ボイドラン(){ openOptionsMenu();} })。

  3. onPrepareOptionsMenu()をオーバーライドします。フラグが設定されているかどうかを確認します。そうであれば、2つの追加メニュー項目を追加し、フラグを設定解除します。 「アイテムを追加する」メニュー項目が押されるたびに新しい項目を追加し続けるのを防ぐために、あなたが探している動作でない限り、いくつかの追加作業を行う必要があります。

関連する問題