[Android開発] オプションメニューの生成とアイコン

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Android端末で[Menu]ボタンをクリックした際に生成されるオプションメニューの挙動をプログラムします。必要なimportファイルは、android.view.Menuとandroid.view.MenuItemになります。また、./res/values/string.xmlにオプションメニューに表示する各ボタンの文字を追加する必要があります。

オプションメニューの生成

オプションメニューの生成には、onCreateOptionsMenuメソッドを使います。このonCreateOptionsMenuメソッドは、superクラスのonCreateOptionsMenuメソッドをオーバーライドする必要があります。onCreateOptionsMenuメソッドは、引数にMenu型の変数menuを取ります。関数内では、この引数menu内にメニューアイテムをaddしていく形となります。

メニューアイテムの追加には、Menuクラスのaddメソッドを使います。addメソッドは、引数にグループID(groupID)、アイテムID(itemID)、優先順位(order)、タイトルリソース(titleRes)を取ります。タイトルリソースには、./res/values/string.xmlに設定したnameを記述します。addメソッドの戻り値として、MenuItemを取得できるので、戻り値に対してアイコン画像を追加することができます。アイコン画像の追加には、secIconメソッドを使います。setIconメソッドの引数にはリソースID(resID)を必要とします。リソースIDには、自作アイコンであれば、./res/drawableに配置した画像を[R.drawable.ファイル名(拡張子無し)]の書式で記述します。また、システムが保持する画像を利用する場合は[android.R.drawable.ファイル名(拡張子無し)]で記述します。システム・リソースで指定できる値は(恐らく)42個あります。これらについては、当ブログの末尾にアイコン画像とあわせて一覧の形で印刷できるチートシート的な形でダウンロードできるファイルを掲載してありますので、そちらを印刷してご利用下さい。

メニューアイテム選択イベントの処理

メニューアイテム選択時には、onOptionsItemSelectedメソッドを使います。これもsuperクラスのonOptionsItemSelectedメソッドをオーバーライドします。onOptionsItemSelectedメソッドは、引数としてMenuItem型の変数itemを受け取りますこの引数のgetItemIdメソッドを使うことにより、選択されたアイテムのIDを取得し、それぞれどのアイテムが選択されたかを知ることができます。あとは、選択されたアイテムに対してそれぞれの処理を記述していけばOKです。

サンプルプログラム

  1. /**
  2.  * オプションメニューをCreateする
  3.  */
  4. @Override
  5. public boolean onCreateOptionsMenu( Menu menu ) {
  6.     super.onCreateOptionsMenu( menu );
  7.     // メニューアイテムを追加
  8.     MenuItem item0 = menu.add( 0, Util.MENU_ITEM0,
  9.                                 0, R.string.menu_item0 );
  10.     MenuItem item1 = menu.add( 0, Util.MENU_ITEM1,
  11.                                 0, R.string.menu_item1 );
  12.     // 追加したメニューアイテムのアイコンを設定
  13.     item0.setIcon( android.R.drawable.ic_menu_agenda );
  14.     item1.setIcon( android.R.drawable.ic_menu_agenda );
  15.     return true;
  16. }
  17. /**
  18.  * オプションメニューがクリックされたときの動作
  19.  */
  20. @Override
  21. public boolean onOptionsItemSelected(MenuItem item) {
  22.     switch (item.getItemId()) {
  23.         case Util.MENU_ITEM0:
  24.             // 各ボタンが押されたときの処理を記述
  25.             Intent intent = new Intent( ”android.intent.action.VIEW”, 
  26.                                          Uri.parse( ”http://yamablo.com” ) );
  27.             startActivity( intent );
  28.             return true;
  29.         case Util.MENU_ITEM1:
  30.             Util.showToast( this, ”終了します。” );
  31.             finish();
  32.             return true;
  33.     }
  34.     return true;
  35. }

チートシート

Androidのシステムリソースで使用することができるアイコン一覧をチートシートの形でまとめました。用紙サイズはA4ですので、このままご自宅などのプリンタで印刷して手軽に使用することが可能です。また、ファイル形式はPDFファイルとJPEGファイルなっています。PDFファイル版をご覧になるにはAdobe Readeが必要です。JPEGファイルを提供しようと思ったのは、Android端末でも手軽に見ることができるように、です。ですのでお持ちのAndroid端末内にも保存してみてはいかがでしょうか?

関連記事

人気ブログランキングへ

[PR]

トラックバック

http://yamablo.com/2009/09/23-114828.php/trackback

One Response to “[Android開発] オプションメニューの生成とアイコン”

  1. yamablo » Blog Archive » Android開発者用チートシート第2弾 Says:

    [...] 以前掲載した「[Android開発] オプションメニューの生成とアイコン」がAndroid開発者用チートシートの第1弾になります。これはメニューを生成する際にメニュー用アイコンの一覧です。メニュー用アイコンは自作することもできるのですが、Android APIが提供しているアイコンも多数あるので、そのAPIが提供するアイコンの一覧になります。 [...]

コメント


Get Adobe Flash playerPlugin by wpburn.com wordpress themes