「Android StudioでAndroidアプリを作成しAndroid Emulatorで実行」で作成したアプリををベースに、次の機能を持つAndroidアプリをAndroid Studioを使ってJava言語で作成し、Android Emulatorで実行します。
- Activityの切り替えによる画面遷移
- オプションメニューの作成
- アプリ終了処理
- ログ出力
Activityの切り替えによる画面遷移
- 別のActivityを作成するために、次のようにメニュー「File」→「New」→「Activity」→「Gallery…」を選択します。
- 次のように「Empty Activity」を選択します。
- 次のようにActivity名を「ScreenSub」とします。
オプションメニューの作成
アプリ画面の上部にある「アクションバー」をタッチすると表示される「オプションメニュー」を作成します。
- 「res」→「Values」フォルダの「strings.xml」を開き、オプションメニューの項目を次のように追加します。
- 次のように「res」フォルダ上で右クリックし、「res」→「Android Resource Directory」を選択します。
- 表示された画面で、「Resource Type」を「menu」に変更して「OK」をクリックします。
- 次のように作成した「res」→「menu」フォルダ上で右クリックし、「New」→「file」をクリックし、開いた「New File」でファイル名「main.xml」を作成します。
- 作成した「main.xml」に次のようにオプションメニューのレイアウトを作成します。menuタグは、オプションメニューを表示する要素で、メニューアイテムを表示する1つ以上のitemタグを保持します。
- MainActivity.java(ScreenSubを含む)に処理を記述します。
- 11行目で、onCreateOptionsMenu()メソッドをオーバーライドして、オプションメニューボタンを表示します。
- 20行目で、onOptionsItemSelected()メソッドをオーバーライドして、アイテムが選択された時にこのメソッドが呼び出されます。
- 31行目で、アプリ終了処理のコードを記述します。
- 6行目で、Log.printlnメソッドによりログ出力を行います。なおScreenSubクラスの場合は5行目の”MainActivity”を”ScreenSub”とします。
- 作成したアプリをBUildし実行すると、オプションメニューが表示され、メニューを選択すると次のように表示されます。
- オプションメニューから「終了」を選択すると、アプリは終了します。
<string name="menu_item1">Screen-Main</string> <string name="menu_item2">Screen-Sub</string> <string name="menu_item3">終了</string>
<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>
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); }
ログ出力
出力されたログは、Android Studio上のlogcatビューで確認することができます。LogCatビューは画面の下方に設置されています。今回作成したアプリのログを「Mylog」を検索キーとして表示させた結果を次に示します。オプションメニューで「Screen-Sub」を選択することにより「ScreenSub」が表示されたことが確認できます。