Android Menu provides a user interface in Android applications. The concept of the Android menu has come to forgive a user experience to the user. Like if you have the same option (action button ) in multiple activities, then you have to add a menu in the App bar for a good user interface experience.
In this tutorial, you will learn the following:
- Overview Android Manu and Option Menu
- Example and code of Option Menu
Types of Android Menus :
- Options menu: is the collection of menu items for an activity. Where app activity places actions that have a global impact on the app, such as “Profile,” “Login/Logout”, “Notification” and “Settings.”
- Context menu and contextual action mode: A context menu appears when the user performs a long click on an element. That provides actions that affect the selected content or context frame. Like in the Gmail app you have to long-press any email then the Context menu appears with options Delete, Archived, etc. The context menu allows the user to select multiple items.
- Popup menu
: A popup menu displays a list of items in a vertical list that’s anchored to the view that invoked the menu
Android Menu Elements
<menu> : It’s a container of menu Items. A <menu> element is the root node for the file and it hold one or more <item> and <group> elements.
<item> : MenuItem is represents a single item in a menu. This element may contain a nested <menu>element in order to create a submenu.
<group> This is an optional, invisible container for <item> elements. It allows you to categorize menu items so they share properties such as active state and visibility.
Android Menu Attributes
android:id
A resource ID that’s unique to the item, Wheres the application recognizes the item when the user selects it.
android:icon
A reference to a drawable to use as the item’s icon
.android:title
A reference to a string to use as the item’s title.
android:showAsAction
Specifies when and how this item should appear as an action item in the app bar.
Let’s Build an Example of the Android Options Menu :
Step 1. Create new project “Build Your First Android App in Kotlin“
Step 2. Create “new Resource Directory” if menu folder not showing in project
Then create a new menu Directory , if you already have menu directory in project you can skip this step.
Step 3. Create “menu.xml” in menu directory
Step 4. open a “menu.xml” and this code
This code for menu item will show in activity.
Before copy code add this image in mipmap folder
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:icon="@mipmap/outline_search_white_18dp" android:title="Search" app:showAsAction="always" /> <item android:id="@+id/action_profile" android:title="Profile" /> <item android:id="@+id/action_setting" android:title="Setting" /> </menu>
Step 5. Open the “MainActivity.kt” and add following code
package `in`.eyehunt.androidmenu import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.Menu import android.view.MenuItem import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override fun onCreateOptionsMenu(menu: Menu): Boolean { val inflater = menuInflater inflater.inflate(R.menu.manu, menu) return true } // actions on click menu items override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_search -> { msgShow("Search") true } R.id.action_profile -> { msgShow("Profile") true } R.id.action_setting -> { msgShow("Setting") true } else -> { // If we got here, the user's action was not recognized. // Invoke the superclass to handle it. super.onOptionsItemSelected(item) } } fun msgShow(msg: String) { Toast.makeText(this, msg, Toast.LENGTH_LONG).show() } }
Step 6. Now Run the application, in emulator or On you android device
Output screenshot Android Menu example :
Download source code Android Menu in kotlin
https://github.com/eyehunt/AndroidMenu
Do comment if you have any doubt and suggestion on this tutorial.
Note: This example (Project) is developed in Android Studio 3.1.3. Tested on Android 9 ( Android-P), compile SDK version API 27: Android 8.0 (Oreo)
MinSdkVersion=”15″
TargetSdkVersion=”27″
Coding in Kotlin
will be wonderfull if you share or can give me some support in order to do it in multiple activities in kotlin language.
Thank you!