问题很简单:
如何在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模式:我希望菜单按钮关闭或显示弹出窗口。
答案 0 :(得分:2)
您无法捕捉PopupWindow及其扩展程序中的菜单事件。
但是,您可以在启动弹出窗口的Activity中捕获菜单事件 然后将其发送到弹出窗口。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_MENU)
{
yourPopupWindow.menuClicked();
}
return super.onKeyDown(keyCode, event);
}