アプリ作って海外移住

コピペプログラマーのメモ

メニューキー (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);
               
            }