1
1

More than 3 years have passed since last update.

Android Kotlin オプションメニューを表示させる

Posted at

はじめに

今回は画面右上にオプションメニューを表示させていきます。

スクリーンショット 2021-08-11 22.51.54.png

オプションメニュー

画像右上がオプションメニューです。
ちなみにこのボタンを押すと、
スクリーンショット 2021-08-11 22.54.51.png
上記の画像のようにお問い合わせボタンをクリックするとお問い合わせフォームに画面が遷移する様にしていきます

実装

menuフォルダを作成し、フォルダ内にxmlファイルを作成

menu_options.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/optionsInquiry"
        app:showAsAction="never"
        android:title="@string/options_inquiry"
        />

</menu>

titleについてはstring.xmlで「お問い合わせ」を記述しています

上記の記述だけでは画面上にはオプションメニューが表示されないので
MainActivityの方で表示させる記述とクリックした際に画面が遷移する記述をしていきます。

MainActivity.kt
 override fun onCreateOptionsMenu(menu: Menu): Boolean {
        //オプションメニュー用xmlファイルをインフレイト
        menuInflater.inflate(R.menu.menu_options , menu)
        return true
    }

    // オプションメニューのボタン選択時のメソッド
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        //戻り値用の変数を初期値trueで用意
        var returnVal = true
        //選択されたメニューのIDのR値による処理の分岐
        when (item.itemId) {
            //お問い合わせが選択された時の処理
            R.id.optionsInquiry -> {
                //インデントオブジェクトを生成
                val intent = Intent(
                    this@MainActivity , OptionsInquiryActivity::class.java
                )
                //第二画面の起動
                startActivity(intent)
            }
            //それ以外
            else ->
                //親クラスの同名メソッドを呼び出し、その戻り値をreturnValとする
                returnVal = super.onOptionsItemSelected(item)
        }

        return returnVal

        return super.onOptionsItemSelected(item)
    }

インフレイトしているファイルは先ほど作成したxmlファイルです。
ボタンクリック時のメソッドでインデントオブジェクトを作成時に(遷移前のアクティビティ、遷移先のアクティビティ)を記述しています

startActivityで画面を遷移させます

スクリーンショット 2021-08-11 23.13.07.png

MainActivityに表示させるメソッドとボタンクリック時のメソッドを記述する事で、
実際に画面で画面を遷移させることができました!

さいごに

睡魔が襲ってきて説明を若干ハショリましたが、、かなり簡単に実装出来ますね!
このオプションメニューはどの多くのアプリに取り入れられているので、開発する際には是非取り入れましょう!
ちなみにxmlファイルと選択時のメソッドに複数の項目を記述すれば
スクリーンショット 2021-08-11 23.22.55.png
この様にボタンの選択肢を複数にすることができます!(違うアプリやないか、、)

それではおやすみなさい、、、。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1