Context menu action handler

Description

The following code shows how to implement Context menu action handler.

Example

Main layout xml file


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">                        
    <TextView android:layout_width="fill_parent" 
          android:layout_height="wrap_content"
            android:id="@+id/testText" 
          android:text="BEFORE KEYSTROKE DETECTED TEXT!" 
          android:textColor="#FFDDAA" 
          android:textSize="19px"/>          
  <Button android:text="Long-Click Here to Access ContextMenu" 
      android:id="@+id/contextButton"
      android:nextFocusUp="@+id/thirdButton"
      android:nextFocusDown="@+id/secondButton"      
      android:layout_gravity="center"      
      android:layout_width="wrap_content"       
      android:layout_height="wrap_content"/>            
  <Button android:text="Second Button" 
      android:id="@+id/secondButton"
      android:nextFocusUp="@+id/contextButton"
      android:nextFocusDown="@+id/thirdButton"            
      android:layout_gravity="center"
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/>      
  <Button android:text="Third Button" 
      android:id="@+id/thirdButton"
      android:nextFocusUp="@+id/secondButtonButton"
      android:nextFocusDown="@+id/contextButton"            
      android:layout_gravity="center"
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/>      
</LinearLayout>

Main Activity Java code


import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.Button;
import android.widget.Toast;
/*from   w w w  . j ava  2  s  .  co m*/
public class MainActivity extends Activity {  
    @Override    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button secondButton = (Button) findViewById(R.id.secondButton);
        registerForContextMenu(secondButton);
        Button thirdButton = (Button) findViewById(R.id.thirdButton);
        registerForContextMenu(thirdButton);
        Button contextButton = (Button) findViewById(R.id.contextButton);
        registerForContextMenu(contextButton);        
    }
    @Override    
    public void onCreateContextMenu(ContextMenu menu, View view,ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, view, menuInfo);
    menu.setHeaderTitle("Android Context Menu");
    menu.add(0, view.getId(), 0, "Invoke Context Function 1");
    menu.add(0, view.getId(), 0, "Invoke Context Function 2");
  }
    @Override
  public boolean onContextItemSelected(MenuItem item) {
         if(item.getTitle()=="Invoke Context Function 1"){contextFunction1(item.getItemId());}
      else if(item.getTitle()=="Invoke Context Function 2"){contextFunction2(item.getItemId());}
      else {return false;}
  return true;
  }
    public void contextFunction1(int id){
      Toast.makeText(this, "function 1 invoked!", Toast.LENGTH_SHORT).show();
    }
    public void contextFunction2(int id){
      Toast.makeText(this, "function 2 invoked!", Toast.LENGTH_SHORT).show();
    }        
  public boolean onKeyDown(int keyCode, KeyEvent event) {        
    if (keyCode == KeyEvent.KEYCODE_ENTER) {    
          textUpdate();
                return true;
        }
      return false;
    }  
  public void textUpdate() {
    TextView text = (TextView)findViewById(R.id.testText);
    text.setText("ENTER KEY PRESSED!");    
  }
}
Context menu action handler




















Home »
  Android »
    Android UI »




UI Basics
Action Bar
Animation
Button
Canvas
CheckBox
Clock Date Picker
Dialog
EditText
Event
Fragment
Gesture
GridView
ImageView
Layout
ListView
Map
Menu
Model
OpenGL
ProgressBar
RadioButton
Spinner
Tab
TextView
Thread
Toast
Video
View
WebView