public class MenuActivity extends Activity {    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 定义设置上下文菜单的载体并注册
        TextView tv = new TextView(this);
        tv.setText("上下文菜单的载体");
        registerForContextMenu(tv);
        setContentView(tv);
        //setContentView(R.layout.main);
    }
    //创建OptionsMenu
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
  super.onCreateOptionsMenu(menu);
        this.populateMenu(menu);
        return true;
    }
     //单击事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {        
     case Menu.FIRST + 1:          
     Toast.makeText(this, "删除菜单被点击了", Toast.LENGTH_LONG).show();          
     break;      
     case Menu.FIRST + 2:           
     Toast.makeText(this, "保存菜单被点击了", Toast.LENGTH_LONG).show();      
     break;       
     case Menu.FIRST + 3:          
     Toast.makeText(this, "帮助菜单被点击了", Toast.LENGTH_LONG).show();           
     break;        
     case Menu.FIRST + 4:         
     Toast.makeText(this, "添加菜单被点击了", Toast.LENGTH_LONG).show();           
     break;       
     case Menu.FIRST + 5:         
     Toast.makeText(this, "详细菜单被点击了", Toast.LENGTH_LONG).show();       
     break;       
     case Menu.FIRST + 6:           
     Toast.makeText(this, "发送菜单被点击了", Toast.LENGTH_LONG).show();       
     break;        }       
     return false;
    }
    
    private void populateMenu(Menu menu) {
        menu.add(Menu.NONE, Menu.FIRST + 1, 5, "删除").setIcon(android.R.drawable.ic_menu_delete);
        menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存").setIcon(android.R.drawable.ic_menu_edit);       
        menu.add(Menu.NONE, Menu.FIRST + 3, 6, "帮助").setIcon(android.R.drawable.ic_menu_help);       
        menu.add(Menu.NONE, Menu.FIRST + 4, 1, "添加").setIcon(android.R.drawable.ic_menu_add);       
        menu.add(Menu.NONE, Menu.FIRST + 5, 4, "详细").setIcon(android.R.drawable.ic_menu_info_details);       
        menu.add(Menu.NONE, Menu.FIRST + 6, 3, "发送").setIcon(android.R.drawable.ic_menu_send);     
      
        }}

解决方案 »

  1.   

    刚好这里有:http://blog.csdn.net/yuxlong2010/article/details/6579368
      

  2.   

    super.onCreateOptionsMenu(menu);
    这2行代码顺序反了吧,this.populateMenu(menu);在前
    还有onOptionsItemSelected方法里面怎么return false
     
      

  3.   

    楼主,程序没有问题!!!
    菜单是点击menu键才弹出的! 不是一直显示在屏幕下方的!!你点击下menu键 试试能不能弹出你想要的菜单!!试试吧!
      

  4.   

    registerForContextMenu(tv);????
    你是要ContextMenu吗?     activity内重写onContextItemSelected
      @Override
    public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub


      switch (item.getItemId()) {   
      case Menu.FIRST + 1:   
      Toast.makeText(this, "删除菜单被点击了", Toast.LENGTH_LONG).show();   
      break;   
      case Menu.FIRST + 2:   
      Toast.makeText(this, "保存菜单被点击了", Toast.LENGTH_LONG).show();   
      break;   
      case Menu.FIRST + 3:   
      Toast.makeText(this, "帮助菜单被点击了", Toast.LENGTH_LONG).show();   
      break;   
      case Menu.FIRST + 4:   
      Toast.makeText(this, "添加菜单被点击了", Toast.LENGTH_LONG).show();   
      break;   
      case Menu.FIRST + 5:   
      Toast.makeText(this, "详细菜单被点击了", Toast.LENGTH_LONG).show();   
      break;   
      case Menu.FIRST + 6:   
      Toast.makeText(this, "发送菜单被点击了", Toast.LENGTH_LONG).show();   
      break; }   
      return false;


    }
             //tv设置OnCreateContextMenuListener
         tv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
    @Override
    public void onCreateContextMenu(ContextMenu arg0, View arg1,
    ContextMenuInfo arg2) {
    // TODO Auto-generated method stub
    populateMenu(arg0);
    //super.onCreateContextMenu(arg0,arg1,arg2);
    }
    }) ;