オプションメニューを設置 – Android

最近は、従来のメニューボタンからのオプションメニューに変わって、アクションバーが推奨されているようです。ということで、Android 3.0 (API level 11)から追加されたアクションバーを設置してみました。

アクティビティの onCreate()にアクションバーの利用を宣言します。
ただし、API level 11より前の端末ではエラーになりますので、
バージョンによって条件分岐させます。

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {  
	        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        }
        
        setContentView(R.layout.main);
        //以降省略
    }

アクションバー(またはメニューボタン)をでメニューが表示されるようにします。
ここでも、setShowAsAction()というメソッドがAPI level 11以降に対応なので、
条件分岐が必要です。

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
     
        MenuItem actionItem = menu.add("About");
     
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {  
	        actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        }
        
        actionItem.setIcon(android.R.drawable.ic_menu_info_details);
     
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //メニューが選ばれたときの処理を書きます。
    }

このように実装することで、API level 11以降はアクションバーが表示され、
API level 11より前の端末では従来のオプションメニューが表示されます。

参考記事
http://www.pcmag.com/article2/0,2817,2399437,00.asp
http://developer.android.com/guide/topics/ui/actionbar.html
http://techbooster.org/android/ui/12852/
http://y-anz-m.blogspot.jp/2011/04/android.html