ActionBarにあるmenuの項目をカスタマイズしてみる

menu

ActionBarにmenuを作成してみましょう。

ちなみに、ActionBarはAndroid API 11以降でないと使用できませんのであしからず。

まず、Androidプロジェクトを作成します。
作成時のActivityの種類はBlankActivityを選択します。
※BlankActivityを選択すると、最初からmenuの仕組みが盛り込まれます。

分からない場合は、以下を参考にしてください。
Blank Activity でAndroidプロジェクトを作成してみる(Android API 14 以上)

以下のようなファイル構成のプロジェクトができます。
simple-menu-01

それでは、まず、resmenumain.xmlから編集していきましょう。
このmain.xmlには、menuに表示する項目の情報を定義していきます。

今回は、「設定」、「ヘルプ」、「お知らせ」の3項目をmenuに表示させます。
項目ごとに、id、title、iconを設定していきます。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.simplemenu.MainActivity" >

	<item
		android:id="@+id/optionsMenu_edit"
		android:title="@string/opt_menu_edit"
		android:icon="@android:drawable/ic_menu_edit"
	/>
	<item
		android:id="@+id/optionsMenu_help"
		android:title="@string/opt_menu_help"
		android:icon="@android:drawable/ic_menu_help"
	/>
	<item
		android:id="@+id/optionsMenu_info"
		android:title="@string/opt_menu_info"
		android:icon="@android:drawable/ic_menu_info_details"
	/>

</menu>

resvaluesstring.xmlに、タイトルに設定する定数を追加していきます。

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

    <string name="app_name">SimpleMenu</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    
    <!-- menu strings -->
    <string name="opt_menu_edit">設定</string>
	<string name="opt_menu_help">ヘルプ</string>
	<string name="opt_menu_info">お知らせ</string>

</resources>

続いて、Activityにmenuの項目がクリックされた時の処理を追加していきます。

package com.example.simplemenu;

import com.example.simplemenu.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
	        case R.id.optionsMenu_edit:
	        	Toast.makeText(getApplicationContext(), "設定が選択されました", Toast.LENGTH_LONG).show();
	        	return true;
        	case R.id.optionsMenu_help:
        		Toast.makeText(getApplicationContext(), "ヘルプが選択されました", Toast.LENGTH_LONG).show();
	        	return true;
        	case R.id.optionsMenu_info:
        		Toast.makeText(getApplicationContext(), "お知らせが選択されました", Toast.LENGTH_LONG).show();
        		return true;
	        default:
	            return super.onOptionsItemSelected(item);
        }
	}
}

上記の例では、クリックされたときに、それぞれの項目に対応したメッセージが画面に出力されます。
アプリを作る際は、ここに、設計画面や別のActivity1などへ遷移する処理を書いていきます。

コメント

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