`
daibalusu
  • 浏览: 344396 次
文章分类
社区版块
存档分类
最新评论

Android学习札记4:PopupWindow在设置setFocusable后监听返回键盘事件

 
阅读更多

PopupWindow在设置了焦点之后,那么这个弹出窗口就是当前操作的窗口,如果想要在此时响应按键事件,就需要在PopupWindow上注册键盘事件来响应。但是PopupWindow好像只有一个OnDismissListener,怎么来注册键盘事件监听呢?

可以利用PopupWindow里的最外层View,对该子View监听键盘事件setOnKeyListener即可。

popupwindow.setBackgroundDrawable(new BitmapDrawable());
popupwindow.setFocusable(true);
popupwindow.setFocusableInTouchMode(true);

childrenView.setOnKeyListener(new OnKeyListener()
{
	@Override
	public boolean onKey(View v, int keyCode, KeyEvent event)
	{
		// TODO Auto-generated method stub
		if (keyCode == KeyEvent.KEYCODE_BACK)
		{
			Log.v("keyCode", "/" + keyCode);
 			if(popupwindow != null) {
				popupwindow.dismiss();
				popupwindow = null;
			} 
		}
		 return false; 
	}
});










分享到:
评论
1 楼 ohuan 2012-12-27  
我这样处理,为什么 "keyCode/ XXX " 没有打印出来?没有进去onKey() 里,LZ知道是怎么回事?

相关推荐

Global site tag (gtag.js) - Google Analytics