我有一個不使用選項菜單的主要活動。我需要實現這個行爲: 1.當Android菜單按鈕被按下時,彈出窗口被顯示 2.當再次按下Android菜單按鈕時,彈出窗口被解除。攔截PopupWindow中的Android菜單按鈕
我知道如何通過在主要活動中覆蓋onKeyDown()來做#1,但不知道如何去做#2。當顯示彈出窗口時,主活動的onKeyDown()不再被觸發。
當主要活動打開彈出窗口時,如何捕獲Android菜單按鈕? (在我的例子中,彈出窗口是一個PopupWindow,它具有充氣的視圖)。
順便說一句,我試圖設置一個按鍵偵聽器,在彈出的主視圖,但它不會被觸發
mTopView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
LogUtil.debug("*** Key: %d", keyCode);
return false;
}
});
如果是我,我會將「彈出式窗口」放入其自己的活動中,這樣可以以與MainActivity中完全相同的方式完成。在彈出活動中按下菜單時,請調用finish()。 – FoamyGuy
謝謝。我在彈出的解決方案中投入了大量代碼(它需要在與錨點視圖相關的特定位置和形狀中彈出)。如果我不能找到一種方法來實現它,我將嘗試活動方法。 – user1139880