This tutorial explains about creating Context menu in Android.A context menu provides actions that affect a specific item or context frame in the UI.
Context Menu appears when user long press on a View like ListView, GridView etc.It doesn’t support item shortcuts and icons.
Android Context Menu Example
activity_main.xml
Drag one listview from the pallete, now the xml file will look like this:
File: activity_main.xml
<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=".MainActivity" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="66dp" android:layout_marginTop="53dp" > </ListView> </RelativeLayout>
Activity class
Let’s write the code to display the context menu on press of the listview.
File: MainActivity.java
package com.javatpoint.contextmenu; import android.os.Bundle; import android.app.Activity; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends Activity { ListView listView1; String contacts[]={"Ankit","Nitesh","Sumit","Shreyansh","Pankaj"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView1=(ListView)findViewById(R.id.listView1); ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,contacts); listView1.setAdapter(adapter); // Register the ListView for Context menu registerForContextMenu(listView1); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle("Select The Action"); menu.add(0, v.getId(), 0, "Call");//groupId, itemId, order, title menu.add(0, v.getId(), 0, "SMS"); } @Override public boolean onContextItemSelected(MenuItem item){ if(item.getTitle()=="Call"){ Toast.makeText(getApplicationContext(),"calling code",Toast.LENGTH_LONG).show(); } else if(item.getTitle()=="SMS"){ Toast.makeText(getApplicationContext(),"sending sms code",Toast.LENGTH_LONG).show(); }else{ return false; } return true; } }
Preview