ActionBarActivityでアクションバーにメニュー表示

今までアクションバーを持つアプリを作るにはActionBarSherlockのような外部ライブラリが必要でした。

しかし、Android Support Library Rev.18からはActionBarActivityが追加されたのでAndroid3.0未満でもアクションバーを持つアクティビティを作ることができるようになりました。

なぜアクションバーを使うかというと、タイトルのほかにメニューを置いたり、そのほかのウィジェットを設置したりしてアプリの空きスペースを有効利用できるからです。

ここではActionBarActivityを使ってアクションバーにメニューを設置する方法を紹介します。

レイアウト

まず、プロジェクトのres/menuフォルダ以下に次のようなメニューのレイアウトファイルを作ります。

menu.xml
<?xml version="1.0"encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
   		 xmlns:MyApp="http://schemas.android.com/apk/res-auto">
    <group android:menuCategory="container">
        <item android:id="@+id/settingItem"android:title="Settings"
            	android:icon="@drawable/settings"
            	MyApp:showAsAction="always">
        </item>
    </group>
</menu>

メニューバーにメニューを設置したいときはshowAsAction属性に"always"という値を渡します。

しかし、showAsActionはAPIレベル11以上からサポートされるようになったので、代わりにhttp://schemas.android.com/apk/res-autoという名前空間を使用します。

xmls:MyAppは名前空間の接頭辞なのでxmls:以下は自分のアプリ名などの任意の名前に置き換えて下さい。

メニューを作る

次にActionBarActivityonCreateOptionsMenuメソッドでレイアウトからメニューを生成します。

class MyActivity extends ActionBarActivity
{
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.menu, menu);
		return true;
	}
	
}

アクションバーには次のようにアイコンが表示されます。

アクションバーに表示されたメニューアイテム

以上、ActionBarActivityの使い方について簡単に紹介しました。では、また!

関連項目