popupWindow設置了setTouchable(true);setFocusable(true)時,如何捕獲到menu鍵?


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

 

 參考這個例子,里面可以添加如上的方法實現點擊MENU鍵關閉菜單的功能。

http://blog.csdn.net/kkfdsa132/article/details/6403404
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM