Android Context Menu Example

Android Tutorial - Javatpoint



Basics of Android

Android Context Menu Example

The context menu appears when user press long click on the element. It is also known as floating menu.
It doesn't support item shortcuts and icons.

Android Context Menu Example

Let's see the simple example of context menu in android.

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[]={"Ajay","Sachin","Sumit","Tarun","Yogesh"};
 
    @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;  
      }  
    }


Output:




Output after long press on the listview.





Output after clicking on the context menu.






PREVIOUS                                                                                                                      NEXT

No comments:

Post a Comment

Don't be a self fish share with your friends