实现Menu按钮单击扩展PopupWindow的类

时间:2012-05-24 12:41:03

标签: android popupwindow popupmenubutton

问题很简单:

如何在PopupWindow扩展的类上点击菜单按钮?

我现在正在做的是:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if (keyCode == KeyEvent.KEYCODE_MENU)
    {
        if (ab != null) {
            ab.showActionOverflowMenu();
        }
    }
    return true;
}

ab.showActionOverflowMenu()执行以下操作:

public boolean showActionOverflowMenu() {
    if (actions.size() >= 4) {
        try {
            if (ag.isVisible()) {
                ag.dismiss();
            } else {
                showActionOverflow();
                return true;
            }
        } catch (Exception e) {
            showActionOverflow();
            Log.d("click", "click");
            return true;
        }
    }
    return false;
}

showActionOverflow()只是设置弹出窗口并将其附加到按钮。

tl; dr模式:我希望菜单按钮关闭或显示弹出窗口。

1 个答案:

答案 0 :(得分:2)

您无法捕捉PopupWindow及其扩展程序中的菜单事件。

但是,您可以在启动弹出窗口的Activity中捕获菜单事件 然后将其发送到弹出窗口。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if (keyCode == KeyEvent.KEYCODE_MENU)
    {
        yourPopupWindow.menuClicked();
    }

    return super.onKeyDown(keyCode, event);
}