「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」が表示されたことが確認できます。







