設置了焦點,那么這個彈出窗體是當前操作的窗口,如果想要后面的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
