Не закрывать PopupMenu при нажатии MenuItem-Click

Мне нужно показать несколько элементов во всплывающем меню. Они динамически загружаются и добавляются в PopupMenu, который отображается при нажатии кнопки.

        PopupMenu popupMenu = new PopupMenu(this, view);
        Menu menu = popupMenu.getMenu();

        for (Category c : categories) {
            menu.add(c.getName()).setCheckable(true);
        }

        popupMenu.show();

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

Кто-нибудь делал это раньше или есть идея удовлетворить мое требование?


person JU5T1C3    schedule 13.10.2015    source источник
comment
ты решил свою проблему?   -  person Sergey Shustikov    schedule 02.12.2016


Ответы (1)


Когда вы переопределяете public boolean onMenuItemClick(MenuItem item) для обработки события click, возвращайте false вместо true. Это сообщит системе, что щелчок по меню еще не завершен, и он не закроет его.

person NoChinDeluxe    schedule 13.10.2015
comment
Я пробовал обе возможности, но ни true, ни false решения не принесли. - person JU5T1C3; 13.10.2015
comment
Есть ли документация о том, что возвращаемое значение управляет этим поведением? Это имеет смысл, но я не могу найти его в официальных документах. Как и JU5T1c3, ни значение true, ни значение false, похоже, не останавливают закрытие всплывающего окна для меня. - person RedBassett; 26.01.2017