Menu in Android

0

 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

0Comments

POST Answer of Questions and ASK to Doubt

Post a Comment (0)