代码如下 我想通过监听菜单键来显示自定义的菜单 点击第一下的时候可以显示 但是之后就没有反应了 也没有输出 window dimiss  但是如果按了后退之后 显示的菜单消失了  再按menu的时候会输出 window dismiss 
if (keyCode == KeyEvent.KEYCODE_MENU) {
  if(window==null){
  System.out.println("window is null");
  showOutMenu();
  }else{
  System.out.println("window dismiss");
  window.dismiss();   }
  return true;
  }

解决方案 »

  1.   

    额  没看到你的window和showOutMenu是什么  
    不是有系统方法创建菜单么   你试试onCreateOptionsMenu  监听事件在onOptionsItemSelected
    或者贴下你的代码  看看是不是哪的逻辑有问题  
      

  2.   


    用系统自带的Menu 不好看而且 没法加图片啊  我做的这个类似微信那种 一个图片加一行文字的模式下面是showOutMenu()  window 是一个PopupWindow  
    private void showOutMenu(){
    LayoutInflater layoutIn = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    View view = layoutIn.inflate(R.layout.popmenu, null);
    ImageView sat=(ImageView)view.findViewById(R.id.imageView_Sat);
    ImageView loc=(ImageView)view.findViewById(R.id.imageView_loc);
    sat.setOnClickListener(new OnClickListener(){ @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    if(!isSat){
    mapView.setSatellite(true);
    isSat=true;
    }else{
    mapView.setSatellite(false);
    isSat=false;
    }
    window.dismiss();
    System.out.println("sat window dismiss");
    }

    });

    loc.setOnClickListener(new OnClickListener(){ @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    new Thread(new ReLocationThread()).start();
    window.dismiss();
    System.out.println("loc window dismiss");
    }

    });

    if (window == null)
    {
    window = new PopupWindow(view, LayoutParams.MATCH_PARENT,
    LayoutParams.WRAP_CONTENT, true);
    window.setAnimationStyle(R.style.popuStyle);
    window.setBackgroundDrawable(new BitmapDrawable());
    }
    window.showAtLocation(findViewById(R.id.baidulocationlayout), Gravity.BOTTOM,
    0, 0);
    }
      

  3.   

    额  mapView又是啥  你将多余的都注释掉   看看基本的popupWindow显示和消失是不是正常的   我创建了工程没法调试 
      

  4.   


    好了 现在问题已经解决了  是显示了 popupWindow之后系统监听不到 menu按键了
      

  5.   


    好了 现在问题已经解决了  是显示了 popupWindow之后系统监听不到 menu按键了
    嗯  了解  需要为popupWindow监听menu键  实现消失  是吧