Menus
Menus are a common user interface component in many types of applications.
This guide shows how to create the three fundamental types of menus or action presentations on all versions of Android:
Options menu and app bar
The options menu is the primary collection of menu items for an activity. It's where you should place actions that have a global impact on the app, such as "Search," "Compose email," and "Settings."
Context menu and contextual action mode
A context menu is a floating menu that appears when the user performs a long-click on an element. It provides actions that affect the selected content or context frame.
Popup menu
A popup menu displays a list of items in a vertical list that's anchored to the view that invoked the menu.
It contains three items as show below. It is created automatically inside the res/menu directory.
<menu xmlns:androclass="http://schemas.android.com/apk/res/android" > <item android:id="@+id/item1"
android:title="Item 1"/>
<item android:id="@+id/item2"
android:title="Item 2"/>
<item android:id="@+id/item3"
android:title="Item 3"/>
</menu>
More Details
Example
activity_main.xml
main.xml //main.xml file in res/menu
Menus are a common user interface component in many types of applications.
This guide shows how to create the three fundamental types of menus or action presentations on all versions of Android:
Options menu and app bar
The options menu is the primary collection of menu items for an activity. It's where you should place actions that have a global impact on the app, such as "Search," "Compose email," and "Settings."
Context menu and contextual action mode
A context menu is a floating menu that appears when the user performs a long-click on an element. It provides actions that affect the selected content or context frame.
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 Option Menu Example
Defining a Menu in XML
It contains three items as show below. It is created automatically inside the res/menu directory.
menu with the following elements:
<menu>
- Defines a
Menu
, which is a container for menu items. A<menu>
element must be the root node for the file and can hold one or more<item>
and<group>
elements. <item>
- Creates a
MenuItem
, which represents a single item in a menu. This element may contain a nested<menu>
element in order to create a submenu. <group>
- An optional, invisible container for
<item>
elements. It allows you to categorize menu items so they share properties such as active state and visibility. For more information, see the section about Creating Menu Groups.
<menu xmlns:androclass="http://schemas.android.com/apk/res/android" > <item android:id="@+id/item1"
android:title="Item 1"/>
<item android:id="@+id/item2"
android:title="Item 2"/>
<item android:id="@+id/item3"
android:title="Item 3"/>
</menu>
More Details
Write a Program to create menu with three menu items
Example
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.root.myapplication.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Menu Program" /> </RelativeLayout>
main.xml //main.xml file in res/menu
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/item1" android:title="item1" /> <item android:id="@+id/item2" android:title="item2" /> <item android:id="@+id/item3" android:title="item3" /> </menu>
MainActivity.java
package com.example.root.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @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) { int id = item.getItemId(); if (id == R.id.item1) { Toast.makeText(getApplicationContext(), "First Item Selected!", Toast.LENGTH_SHORT).show(); } if (id == R.id.item2) { Toast.makeText(getApplicationContext(), "Second Item Selected!", Toast.LENGTH_SHORT).show(); } if (id == R.id.item3) { Toast.makeText(getApplicationContext(), "Third Item Selected!", Toast.LENGTH_SHORT).show(); } return true; } }
Problem - res/menu and res/xml are not there
If it is in android studio 2.1.1, to create a res/menu folder follow these steps.
right click on res -> new -> Android resource directory -> change the resource type to 'menu' in the dropdown menu -> click ok
to create menu file in menu folder right click on menu folder -> new -> menu resource file ->give the file name -> click ok.
|
No comments:
Post a Comment