Реализация кнопки меню нажатием на расширение класса PopupWindow
Вопрос прост:
Как поймать щелчки на кнопке меню в классе, который выходит из 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 ответ
Решение
Вы не можете отловить события меню в PopupWindow и его расширениях.
Однако вы можете перехватить событие меню в Activity, которое запускает всплывающее окно, а затем отправляет его всплывающему окну.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_MENU)
{
yourPopupWindow.menuClicked();
}
return super.onKeyDown(keyCode, event);
}