メニューキー (ActionMenubar ではない)
メニューの作成
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//メニュー作成
menu.add(0,1,0,"ヘルプ").setIcon(android.R.drawable.ic_menu_help);
menu.add(0,2,0,"情報").setIcon(android.R.drawable.ic_menu_info_details);
return true;
}
groupId:グループID
グループの識別子。メニューをグループ分けする必要がない時は通常NONEを指定する。 ・・・0
itemID:アイテムID
メニューアイテムが選択された時に識別するためのIDを指定する。ユニークなIDが不要な場合はNONEを指定する。1,2,3.・・・・・
order:メニュー内での表示順
メニューアイテムの表示する順番。NONEを指定すれば、追加した順番で表示される。
・・・0
title:メニュー名
メニューに表示する文字列
return 不明 ここではtrue でいいみたい。
メニュークリック処理
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Menu1:
Toast.makeText(getApplicationContext(), "Menu1", Toast.LENGTH_SHORT).show();
return true;
case Menu2:
Toast.makeText(getApplicationContext(), "Menu2", Toast.LENGTH_SHORT).show();
return true;
}
return true;
}
onOptionsItemSelectedでのswitch文は return true; return false;の形でいいみたい。
以下の文じゃないみたい。
return true じゃないと、メニューキー押して戻るボタンを押すとえらーになる。
最初にメニューを表示する時にonCreateOptionsMenuメソッドが呼ばれ
次に onPrepareOptionsMenuメソッドが呼ばれる
2回目以降、メニューを表示する時にはonCreateOptionsMenuメソッドは呼ばれず
onPrepareOptionsMenuメソッドのみが呼ばれる
よって、メニューが表示される直前に変更したい場合には、onPrepareOptionsMenuメソッド内にそのコードを記述すると良い
オプションメニューが選択された時には、まずonMenuItemSelectedが呼ばれ
onOptionsItemSelectedが呼ばれる
public boolean onOptionsItemSelected( MenuItem item ){
switch (item.getItemId()) {
case 1:
//画面遷移
Intent intent_khelp = new Intent(MainActivity.this,KhelpActivity.class);
startActivity(intent_khelp);
Toast.makeText(this, "1 ヘルプ ", Toast.LENGTH_LONG).show();
break;
case 2:
//画面遷移
Intent intent_info = new Intent(MainActivity.this,EasaoneinfoActivity.class);
startActivity(intent_info);
Toast.makeText(this, "2 情報", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}