0

私はアンドロイドの初心者で、ユーザーの選択に応じて 2 つの異なるメニューを膨らませようとしています。ただし、メニューは切り替わりません。ユーザーが何を選択しても、同じメニューが毎回膨張します。さまざまなパラメーターを使用して if/else ステートメントを試してみましたが、メニュー インフレータは同じメニューをインフレートするだけでは適切に応答しません。どんな助けでも大歓迎です。

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    super.onCreateOptionsMenu(menu);
    popUpMenu = getMenuInflater();
    //popUpMenu.inflate(R.menu.cool_menu, menu);
    if(mypodcast==null){
        popUpMenu.inflate(R.menu.cool_menu, menu);
    }else  {
        popUpMenu.inflate(R.menu.podcast, menu);
    }
    return true;
}
4

1 に答える 1

1

ユーザーが何を選択しても、同じメニューが毎回膨張します。

これは、ドキュメントonCreateOptionsMenu()から、メニューを開くたびに呼び出されないためです。

これは、オプション メニューが最初に表示されたときに 1 回だけ呼び出されます。メニューが表示されるたびに更新するには、onPrepareOptionsMenu(Menu)を参照してください。

メニューを変更したい場合は、 でこれを行う必要がありますonPrepareOptionsMenu()。ただし、呼び出されるたびに新しいメニューを膨らませることができる、または膨らませる必要があるとは思いませんonPrepareOptionsMenu()。ただし、この方法で必要に応じて、2 つのメニューを組み合わせて、各メニュー項目の表示を変更することができます。

于 2012-10-17T23:27:31.313 に答える