Android StudioでAndroidアプリを作成しAndroid Emulatorで実行」で作成したアプリををベースに、次の機能を持つAndroidアプリをAndroid Studioを使ってJava言語で作成し、Android Emulatorで実行します。

  • Activityの切り替えによる画面遷移
  • オプションメニューの作成
  • アプリ終了処理
  • ログ出力

Activityの切り替えによる画面遷移

  1. 別のActivityを作成するために、次のようにメニュー「File」→「New」→「Activity」→「Gallery…」を選択します。
  2. 次のように「Empty Activity」を選択します。
  3. 次のようにActivity名を「ScreenSub」とします。

オプションメニューの作成

アプリ画面の上部にある「アクションバー」をタッチすると表示される「オプションメニュー」を作成します。

  1. 「res」→「Values」フォルダの「strings.xml」を開き、オプションメニューの項目を次のように追加します。
  2. <string name="menu_item1">Screen-Main</string>
    <string name="menu_item2">Screen-Sub</string>
    <string name="menu_item3">終了</string>
    
  3. 次のように「res」フォルダ上で右クリックし、「res」→「Android Resource Directory」を選択します。
  4. 表示された画面で、「Resource Type」を「menu」に変更して「OK」をクリックします。
  5. 次のように作成した「res」→「menu」フォルダ上で右クリックし、「New」→「file」をクリックし、開いた「New File」でファイル名「main.xml」を作成します。
  6. 作成した「main.xml」に次のようにオプションメニューのレイアウトを作成します。menuタグは、オプションメニューを表示する要素で、メニューアイテムを表示する1つ以上のitemタグを保持します。
  7. <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        tools:context="com.example.androidmenutest.app.MainActivity">
    
        <item
            android:id="@+id/item1"
            android:orderInCategory="200"
            android:title="@string/menu_item1"
            app:showAsAction="never" />
        <item
            android:id="@+id/item2"
            android:orderInCategory="200"
            android:title="@string/menu_item2"
            app:showAsAction="never" />
    
        <item
            android:id="@+id/item3"
            android:orderInCategory="300"
            android:title="@string/menu_item3"
            app:showAsAction="never" />
    
    </menu>
    
  8. MainActivity.java(ScreenSubを含む)に処理を記述します。
    • 11行目で、onCreateOptionsMenu()メソッドをオーバーライドして、オプションメニューボタンを表示します。
    • 20行目で、onOptionsItemSelected()メソッドをオーバーライドして、アイテムが選択された時にこのメソッドが呼び出されます。
    • 31行目で、アプリ終了処理のコードを記述します。
    • 6行目で、Log.printlnメソッドによりログ出力を行います。なおScreenSubクラスの場合は5行目の”MainActivity”を”ScreenSub”とします。
    Intent intent;
    
    protected void onCreate(Bundle savedInstanceState) {
       ・・・
        String message = String.format("MainActivity onCreate (%s)", "DEBUG");
        Log.println(Log.DEBUG, "Mylog", message);
    }
    
    // オプションメニューの作成
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    //main.xmlの内容を読み込む
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }
    
    // オプションメニューのアイテムが選択されたときに呼び出されるメソッド
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item1:
                intent = new Intent(getApplication(), MainActivity.class);
                startActivity(intent);
                return true;
            case R.id.item2:
                intent = new Intent(getApplication(), ScreenSub.class);
                startActivity(intent);
                return true;
            case R.id.item3:
                this.finish();
                this.moveTaskToBack(true);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
    
  9. 作成したアプリをBUildし実行すると、オプションメニューが表示され、メニューを選択すると次のように表示されます。
  10. オプションメニューから「終了」を選択すると、アプリは終了します。

ログ出力

出力されたログは、Android Studio上のlogcatビューで確認することができます。LogCatビューは画面の下方に設置されています。今回作成したアプリのログを「Mylog」を検索キーとして表示させた結果を次に示します。オプションメニューで「Screen-Sub」を選択することにより「ScreenSub」が表示されたことが確認できます。