当前位置:编程学习 > wap >>

这段代码在android模拟器中无法显示出menu,没有报错也运行了但就是不显示menu?

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);     
      
        }} --------------------编程问答-------------------- ms没什么问题,你点菜单键没出菜单吗? --------------------编程问答-------------------- 刚好这里有:http://blog.csdn.net/yuxlong2010/article/details/6579368 --------------------编程问答-------------------- super.onCreateOptionsMenu(menu);
这2行代码顺序反了吧,this.populateMenu(menu);在前
还有onOptionsItemSelected方法里面怎么return false
  --------------------编程问答--------------------
引用 3 楼 xinqiqi123 的回复:
super.onCreateOptionsMenu(menu);
这2行代码顺序反了吧,this.populateMenu(menu);在前
还有onOptionsItemSelected方法里面怎么return false
--------------------编程问答-------------------- 楼主,程序没有问题!!!
菜单是点击menu键才弹出的! 不是一直显示在屏幕下方的!!

你点击下menu键 试试能不能弹出你想要的菜单!!

试试吧! --------------------编程问答--------------------
引用楼主 yu8866213 的回复:
public class MenuActivity extends Activity {

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceSta……

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);
}
}) ;







补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,