【Android Studio】オプションメニューの作り方 – Java編

Sara

この記事では、アプリ画面右上に表示される オプションメニューの作り方を紹介します。 

以下のようなメニューを作成・表示します。

開発環境

Android StudioChipmunk 2021.2.1
Android EmulatorNexus 4 (API 32)
compileSdk / targetSdk32
minSdk16

プロジェクトについて

OptionMenuSample という名前のプロジェクトを作成して

  • MainActivity.java
  • activity_main.xml

がある状態で実装していきます。

オプションメニューの作り方

1. レイアウトファイルの作成

Android Studio 画面左側のプロジェクト構造にある res フォルダの上で右クリックして、 New → Android Resource File を選択します。

File name に option_menu.xml と入力、Resource Type は Menu を選択します。

2. アイコンの用意

オプションメニューに表示するアイコンを用意します。

今回は Android Studio から簡単に用意できる Vector アイコンを使います。

ご自身で用意したアイコン画像を使う場合は drawable フォルダに画像を置いてください。

Android Studio 画面の一番左側にある Resource Manager を開きます。

+ ボタンをクリックして Vector Asset を選択します。

Clip Art をクリックします。

home を検索して OK を押します。

Next を押します。

Finish を押します。

同じ手順で email, person, phone アイコンも追加します。

3. レイアウトの用意

option_menu.xml を開いて、以下のようにレイアウトを用意します。

id 属性

クリックされた項目を識別できるように id を設定しておきます。

icon 属性

アイコン画像を指定します。

orderInCategory 属性

表示順を指定します。

このサンプルでは「アカウント」→「ホーム」の順番で XML を書いていますが、orderInCategory 属性によって「ホーム」→「アカウント」の順番で表示されます。

title 属性

表示名です。アイコンを指定してない場合に表示されます。

showAsAction 属性

アクションバー内での表示に関する設定をします。

ifRoom表示スペースがあればアクションバーに表示されます。スペースがない場合はオーバーフローメニュー内に表示されます。
withTexttitle 属性のテキストを表示します。ifRoom|withText のように書くことができます。
alwaysアクションバーに常に表示します。
neverアクションバーに表示せず、オーバーフローメニュー内に表示されます。
collapseActionViewこのアクションに関連づけられているビューが折りたたみ可能になります。

4. オプションメニューを表示する

MainActivity.java を開いて19~36行目を追加します。

19~23行目

onCreateOptionsMenu メソッドは、メニューを初めて表示する時に一度だけ呼び出されます。

動的にメニュー項目を変更する場合は onPrepareOptionsMenu メソッドを使います。

25~36行目

onOptionsItemSelected メソッドは、項目が選択されたときに呼ばれます。

このサンプルでは選択された項目のタイトルを Toast 表示していますが、押された項目ごとに処理が変わる場合は27~31行目のように書くことができます。

他にもメニューを閉じた時に呼ばれる onOptionsMenuClosed メソッドがあります。

5. 完成

Android Studio Flamingo からアクションバーが非表示となりました。アクションバーを表示する方法より設定を行ってください。

以上で完成です。

補足:アイコンの色を変更する方法

アイコンの色は xml ファイル(drawable/ic_baseline_home_24.xml など)の1行目 android:tint 属性から変更できます。

<vector android:height="24dp" android:tint="#ffffff"
    android:viewportHeight="24" android:viewportWidth="24"

完成版のコード

Q
option_menu.xml
Q
MainActivity.java
Subscribe
Notify of
6 Comments
古い順
新しい順 人気順
Inline Feedbacks
View all comments
haruki
1 year ago

Can’t determine type for tag ‘<macro name=”m3_comp_bottom_app_bar_container_color”>?attr/colorSurface</macro>’

こんなエラーが出たのですが、どうすれば良いでしょうか??

yan
1 year ago

画面がoption_menu.xmlではなくactivity_main.xmlが表示されるのですがどうすればいいですか?機種はmacです

Last edited 1 year ago by yan
yan
1 year ago
Reply to  Sara

無事問題解決しました!ありがとうございます!

ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィール
>> お問い合わせ
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

POINT 01

動くコード

プログラミングの文法を学んでも、そこからどのようにアプリ開発ができるのかイメージが湧きにくいものです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなどアプリとして機能するものを作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

受講期限もないので、いつでも前のレッスンに戻ることができるので安心です。

お申し込みしたその日からすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

6
0
この記事にコメントするx
記事URLをコピーしました