最近は、従来のメニューボタンからのオプションメニューに変わって、アクションバーが推奨されているようです。ということで、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://y-anz-m.blogspot.jp/2011/04/android.html