ch2_contextmenu.xml:
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <TextView android:id="@+id/tv" 8 android:layout_width="fill_parent" 9 android:layout_height="wrap_content" 10 android:text="这是一个上下文菜单ContextMenu的示例"/> 11 12 <EditText android:id="@+id/myEd" 13 android:layout_width="fill_parent" 14 android:layout_height="wrap_content"/> 15 16</LinearLayout>
ContextMenuActivity.java :
1package com.example.ch7; 2 3 4 5import com.example.baseexample.R; 6 7import android.app.Activity; 8import android.os.Bundle; 9import android.view.ContextMenu; 10import android.view.MenuItem; 11import android.view.View; 12import android.view.ContextMenu.ContextMenuInfo; 13import android.widget.EditText; 14import android.widget.TextView; 15 16public class ContextMenuActivity extends Activity { 17 18 private String tempStr; 19 private TextView tv; 20 private EditText myEd; 21 22 public void onCreate(Bundle savedInstanceState){ 23 super.onCreate(savedInstanceState); 24 setContentView(R.layout.ch7_contextmenu); 25 this.registerForContextMenu(findViewById(R.id.tv)); 26 this.registerForContextMenu(findViewById(R.id.myEd)); 27 } 28 29 public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){ 30 menu.setHeaderIcon(R.drawable.ic_launcher); 31 if(v==findViewById(R.id.tv)){ 32 menu.add(0,1,0,"复制"); 33 menu.add(0,2,0,"剪切"); 34 menu.add(0,3,0,"删除"); 35 } 36 if(v==findViewById(R.id.myEd)){ 37 menu.add(0,4,0,"粘贴"); 38 menu.add(0,5,0,"删除"); 39 } 40 } 41 42 public boolean onContextItemSelected(MenuItem item){ 43 tv = (TextView)findViewById(R.id.tv); 44 myEd = (EditText)findViewById(R.id.myEd); 45 switch(item.getItemId()){ 46 case 1: 47 tempStr = tv.getText().toString(); 48 break; 49 case 2: 50 tempStr = tv.getText().toString(); 51 tv.setText(""); 52 break; 53 case 3: 54 tv.setText(""); 55 break; 56 case 4: 57 myEd.setText(tempStr); 58 break; 59 case 5: 60 myEd.setText(""); 61 break; 62 } 63 return true; 64 } 65 66 67}