2011-08-10 24 views
11

ViewFlipperを含むActivityがあり、その中の各ビューに別のオプションメニューが表示されます。ViewFlipperすなわち、メニューボタンが押されたときに表示されるメニューのタイプは、現在のビューのタイプに依存する。ただし、onCreateOptionsMenu()は一度だけ呼び出されます(初めてオプションメニューを表示する場合)ので、異なるメニューを作成することはできません。どうすればこの問題を解決できますか?Android:1つのアクティビティに複数のオプションメニュー

感謝の意を表します。

答えて

28

まず、あなたの活動の一つの内側に、onPrepareOptionsMenuメソッドが呼び出されている間、ユーザーが自分のAndroidデバイス上でメニューを押す程度onPrepareOptionsMenu(Menu menu)

たびをお読みください。初めてメニューが表示されたとき(すなわち、が1回のみ)、onCreateOptionsMenuメソッドが呼び出されます。

基本的には、onPrepareOptionsMenuメソッドでは、特定のメニュー項目を有効/無効にするか、状況に応じてメニュー項目のテキストを変更するなどの変更が必要です。

だから、これ(使用しないでくださいonCreateOptionsMenu(Menu menu))ん

//Dynamically create context Menu 
    @Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 
     menu.clear(); //Clear view of previous menu 
     MenuInflater inflater = getMenuInflater(); 
     if(condition_true) 
      inflater.inflate(R.menu.menu_one, menu); 
     else 
      inflater.inflate(R.menu.menu_two, menu); 
     return super.onPrepareOptionsMenu(menu); 
    } 
関連する問題