Xamarin.Android オプションメニュー
1 オプションメニュー
オプションメニューは、最も基本的なメニューです。
現在の画面(Activity)でやれること(オプション)を表示するために使用されます。
メニューボタンを押すことで表示されますが、Android3.x以降ではアクションバーの中にも表示されています。
2 OnCreateOptionsMenu
オプションメニューの実装は、極めてシンプルです。
ActivityでOnCreateOptionsMenu()をオーバーライドして、メニューのリソースを指定するだけです。
OnCreateOptionsMenuの戻り値がtrueの場合、オプションメニューが有効になります。
public override bool OnCreateOptionsMenu(IMenu menu){ MenuInflater.Inflate (Resource.Menu.OptionMenu, menu); return true; }
指定したリソース(OptionMenu.xml)は、下記のとおりです。
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/optionMenu1" android:title="menu1" /> <item android:id="@+id/optionMenu2" android:title="menu2" /> <item android:id="@+id/optionMenu3" android:title="menu3" /> </menu>
3 OnMenuItemSelectedオプションメニューが選択された時の処理は、OnMenuItemSelected()をオーバーライドして記述します。
パラメータとして受け取る「IMenuItem item」から選択されたアイテムの情報を取得できます。
public override bool OnMenuItemSelected(int featureId, IMenuItem item){ switch (item.ItemId) { case Resource.Id.optionMenu1: Toast.MakeText(this,"selected optionMenu1",ToastLength.Short).Show(); break; case Resource.Id.optionMenu2: Toast.MakeText(this, "selected optionMenu2", ToastLength.Short).Show(); return true; case Resource.Id.optionMenu3: Toast.MakeText(this, "selected optionMenu3", ToastLength.Short).Show(); return true; } return false; }