BloggerAds

2012年1月12日 星期四

Android - Menu

一般來說Create Menu有兩個方式 一個是直接用menu.add


@Override
public boolean onCreateOptionsMenu(Menu menu){//產生Menu選項
     menu.add(0,MENU_ABOUT,0,getString(R.string.menu_about));
     menu.add(0,MENU_EXIT,1,getString(R.string.menu_exit));
     return super.onCreateOptionsMenu(menu);
}


 


另一個是利用MenuInflater


MenuInflater  


先看XML檔


res 目錄下Create menu 目錄,並Create options_menu.xml :



  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <menu  

  3.   xmlns:android="http://schemas.android.com/apk/res/android">  

  4.     <item android:id="@+id/menu_add"  

  5.           android:title="Add"  

  6.           android:icon="@android:drawable/ic_menu_add"  

  7.            />  

  8.     <item android:id="@+id/menu_wallaper"  

  9.           android:title="Wallpaper"  

  10.           android:icon="@android:drawable/ic_menu_gallery"  

  11.            />  

  12.    <item android:id="@+id/menu_search"  

  13.           android:title="Search"  

  14.           android:icon="@android:drawable/ic_search_category_default"  

  15.            />  

  16.    <item android:id="@+id/menu_setting"  

  17.           android:title="Settings"  

  18.           android:icon="@android:drawable/ic_menu_preferences"  

  19.            />  

  20. </menu>  


主程式中



  1. @Override  

  2.     public boolean onCreateOptionsMenu(Menu menu) {  

  3.         MenuInflater inflater = getMenuInflater();  

  4.         inflater.inflate(R.menu.options_menu, menu);      

  5.         return true;  

  6.     }  

  7.       

  8.     @Override  

  9.     public boolean onOptionsItemSelected(MenuItem item) {  

  10.         switch (item.getItemId()) {  

  11.         case R.id.menu_add:  

  12.               

  13.             break;  

  14.         case R.id.menu_wallaper:  

  15.             break;  

  16.         case R.id.menu_search:  

  17.             break;  

  18.         case R.id.menu_setting:  

  19.             showSettings();  

  20.             break;  

  21.         }  

  22.         return super.onOptionsItemSelected(item);  

  23.     }