はじめに
今回は画面右上にオプションメニューを表示させていきます。
オプションメニュー
画像右上がオプションメニューです。
ちなみにこのボタンを押すと、
上記の画像のようにお問い合わせボタンをクリックするとお問い合わせフォームに画面が遷移する様にしていきます
実装
menuフォルダを作成し、フォルダ内に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の方で表示させる記述とクリックした際に画面が遷移する記述をしていきます。
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で画面を遷移させます
MainActivityに表示させるメソッドとボタンクリック時のメソッドを記述する事で、
実際に画面で画面を遷移させることができました!
さいごに
睡魔が襲ってきて説明を若干ハショリましたが、、かなり簡単に実装出来ますね!
このオプションメニューはどの多くのアプリに取り入れられているので、開発する際には是非取り入れましょう!
ちなみにxmlファイルと選択時のメソッドに複数の項目を記述すれば
この様にボタンの選択肢を複数にすることができます!(違うアプリやないか、、)
それではおやすみなさい、、、。