オプションのつくりかた

onCreateOptionsMenuの引数Menu#add()によりオプションを追加できます。

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(Menu.NONE, OPTION_ITEM_ADD, Menu.NONE, "add")
			.setIcon(android.R.drawable.ic_menu_add);
		menu.add(Menu.NONE, OPTION_ITEM_EDIT, Menu.NONE, "edit")
		.setIcon(android.R.drawable.ic_menu_edit);
	
		return true;
	}

onCreateOptionsMenuは、アプリケーションで最初にmenuキーが押されたときだけ呼ばれる。

オプションが選択されたときのハンドリングはonOptionsItemSelectedで行う。

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case OPTION_ITEM_ADD:
			Toast.makeText(this, "add", Toast.LENGTH_SHORT).show();
			break;
		case OPTION_ITEM_EDIT:
			Toast.makeText(this, "edit", Toast.LENGTH_SHORT).show();
		default:
			break;
		}
		return true;
	}

Intentにより動的にオプションを追加する

Menu#addIntentOptions()のパラメータにIntentを渡すことにより、そのIntentに合致するアプリをItemとして動的に追加できます。
addIntentOptionsは指定したgroupIdのアイテムを上書きしてしまうので、専用のGroupIdをMenu.CATEGORY_ALTERNATIVEで指定しておくのが作法のようです。

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(Menu.NONE, OPTION_ITEM_ADD, Menu.NONE, "add").setIcon(android.R.drawable.ic_menu_add);
		menu.add(Menu.NONE, OPTION_ITEM_EDIT, Menu.NONE, "edit").setIcon(android.R.drawable.ic_menu_edit);
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_VIEW);
		intent.addCategory(Intent.CATEGORY_ALTERNATIVE); 
		intent.setType("vnd.android.cursor.dir/vnd.kaw0909-optionsample.hoge");
		int intentOptions = menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE, Menu.NONE, Menu.NONE, this.getComponentName(), null, intent,
			0, null);
		Log.v("EXAMPLE", "intentOptions:" + intentOptions);

		return true;
	}

IntentOptionsで追加されるアプリケーションのintent-filter

			<intent-filter android:label="sample">
				<action android:name="android.intent.action.VIEW"></action>
				<category android:name="android.intent.category.ALTERNATIVE"></category>
				<data android:mimeType="vnd.android.cursor.dir/vnd.kaw0909-optionsample.hoge"></data>
			</intent-filter>


OptionItemのtitleは、intent-filterのandroid:labelになります。省略するとアプリ名。