コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Androidアプリ入門 No.32 オプションメニューのActivityからの操作

オプションメニュー

オプションメニューのActivityからの操作

ここでは、オプションメニューのイベント処理を説明する。option_menu.xmlは以下のようになる。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:title="1番"
        android:icon="@drawable/ret"
        />
    <item android:title="2番">
        <menu>
            <item android:title="3番" />
            <item android:title="4番" />
            <item android:title="5番" />
        </menu>
    </item>
    <item android:title="6番" />
    <item android:title="7番" />
    <item android:title="8番" />
    <item android:title="9番" />
    <item android:title="10番" />
</menu>

MainActivity.javaは以下のようにする。

package sample.at;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

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

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

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Toast.makeText(getApplicationContext(), item.getTitle(), Toast.LENGTH_SHORT).show();

        return super.onOptionsItemSelected(item);
    }
}

実行結果は以下。グループ化されているメニューの2番を押した際にもイベントが発生しているのがわかる。

オプションメニューをクリックされた際のイベントは、Activity#onCreateOptionsMenuとなる。定義は以下。

public boolean onOptionsItemSelected(MenuItem item)

引数は以下。

引数 説明
item 選択されたアイテム。