メニューの表示、チェックボックス

Android

スマホのゲームは会社の休憩時間や通勤時間などちょっとしたスキマ時間で遊ぶことが多いのではないでしょうか?

例えば家で遊ぶときは音声をOn、外出時ならOffそんな機能を実現する方法の一つがメニューです。

アプリの中にはメニュー機能のウィンドウを自前で用意することもありますがここではAndroidの機能による方法を紹介します。

右上の四角で囲んだ部分です。

ひよこちゃんの玉入れ大会ではここをタッチしてメニューを表示します。

更にチェックボックスをタッチしてサウンドのOn/Offを切り替えています。

チェックボックスOff

チェックボックスOn

メニュー表示の設定はmenu.xmlに記載します。


<?xml version="1.0" encoding="utf-8"?>


<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
      android:id="@+id/menuSound"
      android:title="サウンド"
      android:checkable="true" />
</menu>


メニューの項目を識別する名前を記述します。android:id=”@+id/menuSound”

メニューに表示する項目を記述します。android:title=”サウンド”

メニューにチェックボックスを使う場合記述します。android:checkable=”true”

<item 〜〜〜 />を項目の数だけ繰り返します。

 

実際の表示はActivityクラスの中に記述します。

例のsoundFlagはbooleanでチェックボックスの状態を指定指定しています。

menuSoundはmenu.xmlで指定した識別名menuSoundもここで使用します。


   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        MenuItem menuSound = (MenuItem) menu.findItem(R.id.<strong>menuSound</strong>);
        menuSound.setChecked(soundFlag);
        return super.onCreateOptionsMenu(menu);
    }


ここまででメニューを表示できるようになります。

次は実際にメニューがタップされたときの動作です。これもActivityクラスに記載します。


  @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {

        switch (menuItem.getItemId()) {
            case R.id.menuSound:
                if(menuItem.isChecked()){
                //menuSoundのチェックボックスがチェックされていたときの動作
                }else{
                //menuSoundのチェックボックスがチェックされていないときの動作
                }
                return true;
        }
        return true;
    }


実際のアプリでは音声のOn/Offの処理やデータ保存を行っています。

 

 

 

タイトルとURLをコピーしました