设置了焦点,那么这个弹出窗体是当前操作的窗口,如果想要后面的Activity响应按键,需要在popupwindow上注册键盘事件,然后去调用Activity的组件来响应相应的事件。但是
popupWindow好像只有一个onDisMiss的监听,怎么来注册键盘事件监听啊?
可以利用setOnKeyListener对popupwindow的某个view设置监听,捕捉键盘事件就可以了吧
popupwindow里面有个View,用这个view添加键盘事件
给最外层的view设下setOnKeyListener就可以了
例如
menuView.setBackgroundDrawable(new BitmapDrawable());
menuView.setFocusable(true);
menuView.setFocusableInTouchMode(true);
menuView.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if (event.getAction() == KeyEvent.KEYCODE_MENU)
{
Log.v("keyCode", "/" + keyCode);
popupBack.dismiss();
popupWindow.dismiss();
return false;
}
return false;
}
});
例如
menuView.setBackgroundDrawable(new BitmapDrawable());
menuView.setFocusable(true);
menuView.setFocusableInTouchMode(true);
menuView.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if (event.getAction() == KeyEvent.KEYCODE_MENU)
{
Log.v("keyCode", "/" + keyCode);
popupBack.dismiss();
popupWindow.dismiss();
return false;
}
return false;
}
});
参考这个例子,里面可以添加如上的方法实现点击MENU键关闭菜单的功能。
http://blog.csdn.net/kkfdsa132/article/details/6403404