Android SDKで「menu」ボタンでメニューを表示する

test124_01.png
今回は「menu」ボタンを押したときのメニュー表示を実装する。

と言ってもonCreateOptionsMenu()とonOptionsItemSelected()をオーバーライドするだけで非常に簡単。気をつけることはIDの管理ぐらいだ。
package com.Test124;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

public class Test124Act extends Activity
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}


	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		super.onCreateOptionsMenu(menu);

		int		nId = 0;

		menu.add(0,nId++,Menu.NONE,"AAA").setIcon(android.R.drawable.ic_menu_set_as);
		menu.add(0,nId++,Menu.NONE,"BBB");
		menu.add(0,nId++,Menu.NONE,"CCC").setIcon(R.drawable.icon);

		menu.add(1,nId++,Menu.NONE,R.string.app_name);	//本当はこのようにリソース文字列を使わないとダメ
		menu.add(1,nId++,Menu.NONE,"BBB1");
		menu.add(1,nId++,Menu.NONE,"CCC1");
		menu.add(1,nId++,Menu.NONE,"DDD1");

		menu.add(2,nId++,Menu.NONE,"AAA2");

		return true;
	}


	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		Log.d("Test124","MenuSelected " + item.getItemId() + " " + item.getTitle());

		switch(item.getItemId())
		{
		case 0:
			return	true;

		case 1:
			return	true;

		case 2:
			return	true;

		default:
			break;
		}

		return super.onOptionsItemSelected(item);
	}
}

test124_02.png
実際に実行して、「menu」ボタンを押すとメニューが表示された。

test124_03.png
項目が多い場合は「more」ができ、このように追加画面へと切り換えれる。




プロジェクトファイルをダウンロード


カテゴリー「android」 のエントリー