Menu を使ってみた

Menu は
android.view.Menu
を使用します

さらに、Activity クラスの
  • public boolean onCreateOptionsMenu(Menu menu)
  • public boolean onPrepareOptionsMenu(Menu menu)
  • public boolean onOptionsItemSelected(MenuItem item)
  • public boolean onMenuOpened(int featureId, Menu menu)
などのメソッドを Override することで使用できます

というわけで、Menu をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.Menu;  
  4. import android.view.MenuItem;  
  5. import android.view.SubMenu;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9.   
  10. public class MenuTest extends Activity {  
  11.   private static final int MENU_ID1 = Menu.FIRST;  
  12.   private static final int MENU_ID2 = Menu.FIRST + 1;  
  13.   private static final int MENU_ID3 = Menu.FIRST + 2;  
  14.   private static final int SUBMENU_ID1 = Menu.FIRST + 21;  
  15.   private static final int SUBMENU_ID2 = Menu.FIRST + 22;  
  16.   
  17.   @Override  
  18.   public void onCreate(Bundle savedInstanceState) {  
  19.     super.onCreate(savedInstanceState);  
  20.     setContentView(R.layout.main);   
  21.     
  22.     ((Button) findViewById(R.id.Button)).setOnClickListener(  
  23.       new OnClickListener() {  
  24.         public void onClick(View v) {  
  25.           // Menu の表示  
  26.           openOptionsMenu();  
  27.         }  
  28.       }  
  29.     );  
  30.   }  
  31.   
  32.   // Option Menu が最初に表示される時に1度だけ呼び出される  
  33.   @Override  
  34.   public boolean onCreateOptionsMenu(Menu menu) {  
  35.     boolean ret = super.onCreateOptionsMenu(menu);  
  36.   
  37.     // Menu にアイテムを追加  
  38.     menu.add(Menu.NONE, MENU_ID1, Menu.NONE, "Menu1");  
  39.     // Menu に Icon 付きアイテムを追加  
  40.     menu.add(Menu.NONE, MENU_ID2, Menu.NONE, "Menu2").setIcon(R.drawable.icon);  
  41.   
  42.     // SubMenu を追加  
  43.     SubMenu sMenu = menu.addSubMenu(Menu.NONE, MENU_ID3, 3"Menu3");  
  44.     sMenu.add(Menu.NONE, SUBMENU_ID1, Menu.NONE, "SubMenu1");  
  45.     sMenu.add(Menu.NONE, SUBMENU_ID2, Menu.NONE, "SubMenu2");  
  46.   
  47.     // Menu にショートカットキーを設定  
  48.     menu.findItem(MENU_ID1).setAlphabeticShortcut('a');  
  49.     menu.findItem(MENU_ID2).setAlphabeticShortcut('1');  
  50.     menu.findItem(MENU_ID3).setAlphabeticShortcut('s');  
  51.   
  52.     return ret;  
  53.   }  
  54.   
  55.   // Option Menu が表示される時の動作  
  56.   @Override  
  57.   public boolean onPrepareOptionsMenu(Menu menu) {  
  58.     return super.onPrepareOptionsMenu(menu);  
  59.   }  
  60.   
  61.   // Option Menu のアイテムが選択された時の動作  
  62.   @Override  
  63.   public boolean onOptionsItemSelected(MenuItem item) {  
  64.     boolean ret = super.onOptionsItemSelected(item);  
  65.     // 選ばれたアイテムの ID を取得  
  66.     switch(item.getItemId()) {  
  67.     case MENU_ID1:   // Menu1  
  68.       return true;  
  69.     case MENU_ID2:   // Menu2  
  70.       return true;  
  71.     case SUBMENU_ID1:   // Submenu1  
  72.       return true;  
  73.     default:  
  74.     }  
  75.     return ret;  
  76.   }  
  77.   
  78.   // Option Menu が開かれた時の動作  
  79.   @Override  
  80.   public boolean onMenuOpened(int featureId, Menu menu) {  
  81.     return super.onMenuOpened(featureId, menu);  
  82.   }  
  83. }  

プログラムを実行すると...


SubMenu は...

こんな感じ!

参考サイト
http://developer.android.com/intl/ja/reference/android/view/Menu.html
http://developer.android.com/intl/ja/reference/android/app/Activity.html

0 件のコメント:

コメントを投稿