Android onOptionsMenu закрыто не вызывается для подменю - PullRequest
2 голосов
/ 11 сентября 2010

Я хочу иметь возможность автоматически приостанавливать работу моего приложения, когда пользователь выходит из меню параметров. (если, конечно, они не выбрали пауза ...)

Обработка onOptionsMenuClosed отлично работает для меню верхнего уровня, но не вызывается для подменю. Более высокий уровень onPanelClosed также не вызывается.

Я могу определить, когда они входят в меню и делают ли они выбор, но нет, если они просто нажимают кнопку меню, чтобы выйти.

Я мог бы переписать все подменю, чтобы использовать диалоговое окно, но я бы предпочел, чтобы этого не было.

У кого-нибудь есть предложения?

Ответы [ 3 ]

1 голос
/ 11 сентября 2010

Вы можете переопределить onkeydown, установить флаг, чтобы проверить, показывается ли меню или нет, тогда верните super.onKeyDown (keyCode, событие);.

Вы можете проверить, отображается ли меню на экране при каждом нажатии клавиши. Помните, что другие кнопки («Назад», «Поиск» и «Домой» и прикосновение к другой части экрана закрывают меню). С другими кнопками вы можетеобрабатывать их, но нажатие кнопки «домой» и «палец» не может быть отменено.

Если бы я был вами, я бы забыл параметр @override on onydydown для этой цели

Но вы можетеесть 6 кнопок меню, шестая из которых называется «Еще», и это может создать пользовательский диалог с большим количеством опций, которые вы можете обрабатывать

0 голосов
/ 29 августа 2015

Используйте ActionBar.OnMenuVisibilityListener. Проверьте мой ответ на похожий вопрос на https://stackoverflow.com/a/32193927/4419474

0 голосов
/ 11 сентября 2010

Вы можете переопределить onKeyDown и реализовать меню самостоятельно при обнаружении кнопки меню.

...