8

Android のオプション メニュー (メニュー ボタンを押したときに表示されるもの) を変更できるようにする必要があるため、1 つのケース (たとえば、ボタンが押されたとき) で、特定のメニュー リソース (XML ファイルメニューには /res/menu/... のように)、別の場合には別の XML ファイルを使用します。

これまでのところ、xml なしでそれを実行する例のみを見てきました (ここここの例)、それらは正常に機能しましたが、場合によってはメニュー全体を変更できるようにしたいと考えています。見つけた解決策を変更しようとしましたが、私の試行はどれもうまくいきませんでした。

可能であれば、現在のものとは異なるメニュー リソースで更新する必要がある場合にのみ、メニューを再作成することをお勧めします。

私を助けてください。

4

1 に答える 1

17

オプション メニューを最初に作成した後でいつでも変更する場合は、 onPrepareOptionsMenu() メソッドをオーバーライドする必要があります。

public boolean onPrepareOptionsMenu (Menu menu) {    
    menu.clear();    
    if (CASE_1 == 0) {
        CASE_1  = 1; 
        getMenuInflater().inflate(R.menu.secondmenu, menu);
    }
    else {
        CASE_1  = 0;
        getMenuInflater().inflate(R.menu.firstmenu, menu);
    }    
    return super.onPrepareOptionsMenu(menu);
}

ここで、CASE_1 は、要件に応じて表示するメニューを示します。

于 2012-05-08T16:05:06.653 に答える