2011-03-21 15 views
2
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
      case R.id.about: 
      Intent i = new Intent(this, impresszum.class); 
      startActivity(i); 

       return true; 
      case R.id.quit: 
       AppUtils.ExitTheApplication(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
    } 
} 

私はこのコードを持っています。実行時に必要なときにメニューを追加したい。そして、私が必要なときにメニューを削除します。どうやってやるの?Androidは実行時にメニュー項目を追加します

+0

[Androidデベロッパーのウェブサイトでのメニューの作成](http://developer.android.com/guide/topics/ui/menus.html#intents)を参照してください。*動的にメニューインテントを追加する*の部分に焦点を当てます。 – Wroclai

答えて

3

メニュー項目はShellyが提案するセクションのようなアクティビティに必ずしも関連しているとは限りません。その場合はonPrepareOptionsMenu()の呼び出しでメニューを「更新」するためにinvalidateOptionsMenu()を呼び出してメニューオブジェクトを保持できます。

the same Android Developers siteから:

のAndroid 2.3.x以降と下で、システムは、ユーザが(メニューボタンを押す)オプションメニューを開くたびonPrepareOptionsMenu() を呼び出します。

Android 3.0以上では、メニューバーがアクションバーに表示されていると、オプションメニューは常に と表示されます。イベント が発生し、メニュー更新を実行する場合は、 invalidateOptionsMenu()を呼び出してシステムコール onPrepareOptionsMenu()を要求する必要があります。

関連する問題