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