miyabihitoの日記

個人的な技術メモ

メニューの作り方

メニューには下記の3種類ある
・オプションメニュー:メニューボタン押下で表示されるメニュー
・コンテキストメニュー:ウィジェット長押しで表示されるメニュー
・サブメニュー:メニューの子メニュー、ダイアログのような表示形式
Viewと同様にXMLリソースからも生成できる。

Activityが備える種々のメソッドをオーバーライドして、作成や設定が行える。
Activity | Android Developers

onCreateOptionsMenu(Menu):メニューボタン初回押下時のみに呼び出される。
 ここでメニューへアイテムを追加する。
onPrepareOptionsMenu(Menu):メニューボタン押下時に呼び出される。
onOptionsItemSelected(MenuItem):メニュー選択時に呼び出される。
 MenuItemのgetItemId()でアイテムの識別が可能。

ほかにも様々なメソッドがある。(プログラムからメニューを閉じる等)

Javaコードで生成
Menuクラスのaddメソッドでアイテムを追加。
アイコンやショートカットキーの設定も可能。

XMLから生成
ActivityのgetMenuInflater()で取得したMenuInflaterオブジェクトの
inflateメソッドで生成。
アイコンやショートカットキーもXMLで指定。