Android

本物のページはこちら→xml-menu

Included page "android:xml-menu" does not exist (create it now)

xml-menu.jpg

Menu.xml

menu-location.jpg
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_dialog1" android:title="メニューダイアログ1" android:numericShortcut="1" />
    <item android:id="@+id/menu_dialog2" android:title="メニューダイアログ2" android:numericShortcut="2" />
</menu>

Activityにて

インポートするもの

インフレーターとは膨らますもの、という意味があるが、ここではXMLを読み込むものらしい。

import android.view.MenuInflater;
import android.view.MenuItem;

メソッド

    // オプションメニューが最初に呼び出される時に1度だけ呼び出されます
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        //メニューインフレーターを取得
        MenuInflater inflater = getMenuInflater();
        //xmlのリソースファイルを使用してメニューにアイテムを追加
        inflater.inflate(R.menu.menu, menu);
        //できたらtrueを返す
        return true;
    }

メニューが押されたらポップアップを出す

popup.png
    // オプションメニューアイテムが選択された時に呼び出されます
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("タイトル");
        final String message;
        switch (item.getItemId()) {
        case R.id.menu_dialog1:
            message = "メニュー1が指定された!";
            break;
        case R.id.menu_dialog2:
            message = "メニュー2が指定された!";
            break;
        default:
            message = "良く分からないメニューが指定された!";
            break;
        }
        builder.setMessage(message);
        builder.setPositiveButton("OK",new android.content.DialogInterface.OnClickListener() {
            public void onClick(android.content.DialogInterface dialog,int whichButton) {
                setResult(RESULT_OK);
            }
        });
        builder.create();
        builder.show();
 
        return true;
    }

サポートサイト Wikidot.com