请教高手,为什么我在一个activity中自定义了一个PopupWindow让它响应事件(keycode=keycode.menu)
第一次是可以正常弹出,但是点击第二次就不能监听到onKeyDown事件了呢?问题是:1,第一次点击Menu,PopupWindows弹出了,
              2,第二次点击Menu,毫无反应?完全没反应啊,监听不到第二次点击事件我想做成系统默认Menu的效果,第一次点击menu,menu菜单弹出,再次点击menu,menu菜单消失分少,大家别介意

解决方案 »

  1.   

    PopupWindows 没弹出 不代表 keydown 事件没监听到
    打些log分析下
    很有可能是PopupWindows的问题
      

  2.   

    估计是popupWindows的显示状态有问题吧
      

  3.   

    可能是阻塞了吧!你就直接用onCreatOpeanMenu不就行了吗?
      

  4.   

    首先谢谢各位的热心答复,代码在这里上不方便,我测试代码的原型来自:http://blog.csdn.net/hellogv/archive/2011/01/28/6168439.aspx
    -----------------------------------------------------to l417584711 :
    确实是OnKeyDown没有触发,我在该方法首行加入了Log,无法打印。-----------------------------------------------------to bjwj8 :用onCreatOpeanMenu也没用,如果不是默认的系统menu,第二次点击menu也没有任何相应。
      

  5.   

    我是楼主:我估计是弹出popup后,本来的窗口没有了焦点。。所以无法响应任何按键事件,各位觉得呢?
      

  6.   

    to easycoola:当你第一次点击menu出现自定义的Options-Menu后,第二次点击menu什么都不会发生。
    而系统默认的menu,第二次点击会消失。
      

  7.   

    可以借鉴下android中optionsmenu的实现,好像点击一下出来,再点一下就消失了
      

  8.   

    给 PopupWindow setFocusable(false)就行,具体原因看参考:http://www.girlcoding.com/2011/04/popupwindow-custom-menu/
      

  9.   

    to easycoola如果这样,那么PopupWindows中的按钮又要怎么响应呢?
      

  10.   

    to easycoola 
    谢谢你提供的网址。
      

  11.   

     onKeyDown方法中:return true;改成return super.onKeyDown(keyCode, event);
    试试这个看看……