Ad Code

✨🎆 Diwali Dhamaka Offer! 🎆✨

Get 20% OFF on All Courses at Shiva Concept Solution click

Menu in Android

 It is used to create navigation options in  Android Applications, Android provides three different types of menus.

1) Option Menu:-  This menu will appear when we click on the options button of the navigation bar 

2) Context Menu:- This menu will appear when we press Context or Content

3) Pop Menu:-  This menu item will appear when we click on the button

Option Menu Example:-

Create OptionMenuActivity 

OptionMenuActivity.Java 

package com.example.customdrawer;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class OptionMenuActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_option_menu);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.home) {
Toast.makeText(getApplicationContext(),"home",Toast.LENGTH_LONG).show();
}
else if (id == R.id.about) {
Toast.makeText(getApplicationContext(),"about us",Toast.LENGTH_LONG).show();
}
else if (id == R.id.contact) {
Toast.makeText(getApplicationContext(),"contact us",Toast.LENGTH_LONG).show();
}
return super.onOptionsItemSelected(item);
}
}


menu.xml

<?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"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.myapplication.MainActivity">
<item
android:id="@+id/home"
android:orderInCategory="100"
android:title="HOME"
app:showAsAction="never" />

<item
android:id="@+id/about"
android:orderInCategory="100"
android:title="About US"
app:showAsAction="never" />

<item
android:id="@+id/contact"
android:orderInCategory="100"
android:title="Contact US"
app:showAsAction="never" />
</menu>


POPUPMENU Example:-

package com.example.customdrawer;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.Toast;

public class Popupmenuactivity extends AppCompatActivity {

Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popupmenuactivity);
btn = findViewById(R.id.btnpopmenu);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(Popupmenuactivity.this, btn);
popup.getMenuInflater().inflate(R.menu.menu, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(getApplicationContext(),"You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;

}
});
}
});

}
}

XML FILE:-
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Popupmenuactivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnpopmenu"
android:text="Click"></Button>

</LinearLayout>

Menu.xml
<?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"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.myapplication.MainActivity">
<item
android:id="@+id/home"
android:orderInCategory="100"
android:title="HOME"
app:showAsAction="never" />

<item
android:id="@+id/about"
android:orderInCategory="100"
android:title="About US"
app:showAsAction="never" />

<item
android:id="@+id/contact"
android:orderInCategory="100"
android:title="Contact US"
app:showAsAction="never" />
</menu>

Context Menu Example:-
Create Activity and design XML File:-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ContextMenuActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lstcontext"
>


</ListView>

</LinearLayout>
Create popmenu.xml file :-

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/call"
android:title="Call" />
<item android:id="@+id/sms"
android:title="SMS" />
</menu>
Create Code under Activity:-

package com.example.testapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ContextMenuActivity extends AppCompatActivity {

ListView lst;
String arr[] = {"JAY","MANISH","RAVI","SUNIL","PANKAJ"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_context_menu);
lst = findViewById(R.id.lstcontext);
ArrayAdapter aa = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1,arr);
lst.setAdapter(aa);
registerForContextMenu(lst);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.popupmenu, menu);
menu.setHeaderTitle("Select The Action");
}
@Override
public boolean onContextItemSelected(MenuItem item){
if(item.getItemId()==R.id.call){
Toast.makeText(getApplicationContext(),"calling code",Toast.LENGTH_LONG).show();
}
else if(item.getItemId()==R.id.sms){
Toast.makeText(getApplicationContext(),"sending sms code",Toast.LENGTH_LONG).show();
}else{
return false;
}
return true;
}
}


Post a Comment

0 Comments