オプションメニュー

Eclipseのパッケージ・エクスプローラーでres/menu/を右クリック。
[新規] > [その他] > [Android] > [Android XML ファイル]
リソースタイプでMenuを選んでXMLファイルを作成すると、オプションメニューの雛形ができるので
<menu ~></menu>の間にメニュー項目を記述します。


res/menu/testmenu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:id="@+id/menu1" android:title="メニュー1" android:numericShortcut="1" />
   <item android:id="@+id/menu2" android:title="メニュー2" android:numericShortcut="2" />
</menu>


Activity

※packageとimportの宣言は省略。
public class MainActivity extends Activity {
  @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
   }

  // メニューの初期化
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       super.onCreateOptionsMenu(menu);

      MenuInflater inflater = getMenuInflater();
       inflater.inflate(R.menu.testmenu, menu);

      return true;
   }

  // メニュー項目選択時の処理
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
       super.onOptionsItemSelected(item);

      switch (item.getItemId()) {
           case R.id.menu1:
               Toast.makeText(this, "メニュー1が押されました。", Toast.LENGTH_LONG).show();
               break;
           case R.id.menu2:
               Toast.makeText(this, "メニュー2が押されました。", Toast.LENGTH_LONG).show();
               break;
       }

      return true;
   }
}


バージョン間の互換性


Android 3.0からメニュー用の物理ボタンが必須ではなくなりました。
オプションメニューを使うと、Android 3.0以上では画面上部(アクションバー)か
下部(システムバー / ナビゲーションバー)にメニューボタンが表示されます。

メニューボタンの表示位置


Android 3.0以降で画面内に表示されるメニューボタンは、アプリのターゲットAPIレベル(targetSdkVersion)が
11以上なら上部に、それ未満なら下部に表示されます。

上下両方に表示したいときは、Split Action Barを使えばいいようです。
また、ActionBarSherlockというライブラリを使うと、Android 3.0より前のバージョンでも
アクションバーを使用できるそうです。


参考資料




コメントを投稿するには画像の文字を半角数字で入力してください。


画像認証

  • 最終更新:2013-07-18 15:22:53

このWIKIを編集するにはパスワード入力が必要です

認証パスワード