Thursday , November 21 2024

Context Menu In Android

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

context

About admin

Check Also

Binding JavaScript and Android Code – Example

When developing a web application that’s designed specifically for the WebView in your Android application, …

Leave a Reply