- オプションメニュー メニューボタンを押した時に上がってくるメニュー
- コンテキストメニュー 長押ししたりすると出てくるメニュー
- OptionMenu を作る
- OnCreateOptionMenu関数
- OnPrepareOptionsMenu関数
- 毎回。状態に応じてON/OFFしたりする場合に使う
- メニューのボタンを押した際の挙動を作る それぞれの関係は?
- OnMenuItemClickListener
- OnMenuItemSelected
- OnOptionsItemSelected
- MenuItemにOnMenuItemClickListenerを登録する
- MenuItem.setOnMenuItemClickListener(OnMenuItemClickListener);
OnCreateOptionMenu(Menu menu)
オーバーライド
実行タイミングは、始めてメニューを開くとき
2回め以降は OnPrepareOptionMenu のみ
menu.add
itemId はあとで、OnOptionsItemSelectedで受け取れればいい?
menu.add(Menu.NONE, MENU_ID_MENU1, Menu.NONE, "Menu1");
リソースでメニューを作る
- res/menu/menu.xmlでメニューを作る
- getMenuInflator()で読み込む
OnOptionItemSelected(MenuItem item)
public class SampleApp extends Activity {
private Activity me;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
me = this;
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuItem item1 = menu.add("Toast");
MenuItem item2 = menu.add("Alert");
OnMenuItemClickListener listener1 = new OnMenuItemClickListener(){
public boolean onMenuItemClick(MenuItem item){
Toast toast = Toast.makeText(me,"トーストです。",Toast.LENGTH_LONG);
toast.show();
return false;
}
};
OnMenuItemClickListener listener2 = new OnMenuItemClickListener(){
public boolean onMenuItemClick(MenuItem item){
AlertDialog.Builder builder = new AlertDialog.Builder(me);
builder.setMessage("アラートだよ。");
builder.show();
return false;
}
};
item1.setOnMenuItemClickListener(listener1);
item2.setOnMenuItemClickListener(listener2);
return true;
}
}
最終更新:2014年01月05日 21:55