【问题标题】:How to keep popup menu open when clicking on one of its items?单击其中一项时如何保持弹出菜单打开?
【发布时间】:2019-03-30 19:43:26
【问题描述】:

我在操作栏中有一个按钮,当我点击它时会显示一个带有项目的弹出菜单,我想防止在点击一个项目时弹出窗口关闭;这是我用于弹出窗口的代码:

 PopupMenu popup = new PopupMenu(this, popupButton);
 try {
     Field[] fields = popup.getClass().getDeclaredFields();
     for (Field field : fields) {
         if ("mPopup".equals(field.getName())) {
             field.setAccessible(true);
             Object menuPopupHelper = field.get(popup);
             Class<?> classPopupHelper = Class.forName(menuPopupHelper.getClass().getName());
             Method setForceIcons = classPopupHelper.getMethod("setForceShowIcon", boolean.class);
             setForceIcons.invoke(menuPopupHelper, true);
             break;
         }
     }
} catch (Exception e) {
     e.printStackTrace();
}

popup.getMenuInflater().inflate(R.menu.menu_story, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {            
    //code             
    return true ;
});

【问题讨论】:

标签: java android


【解决方案1】:

如果您不希望弹出菜单在单击后立即关闭,您需要创建自己的弹出窗口而不是标准弹出菜单。例如,基于AlertDialog

我就不举例代码了,因为在documentation.

【讨论】:

  • 我想你没有理解我的问题,我已经有了你写的代码,我希望当我点击一个项目时弹出保持打开
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 2011-02-16
相关资源
最近更新 更多