【问题标题】:How to dismiss a PopUp Menu when an Item Clicked in Android在Android中单击项目时如何关闭弹出菜单
【发布时间】:2018-06-30 20:43:42
【问题描述】:

我在我的代码中使用弹出菜单。它完美地工作。但是当我从中选择一个项目时,菜单没有关闭。 我试过 this 。但它不起作用

这是我的代码

 PopupMenu popup = new PopupMenu(this, edit1);
        //inflating menu from xml resource
        popup.inflate(R.menu.options_menu);
        popup.getMenu().add("one");
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                // if (item.getTitle().equals("one")) {
                Toast.makeText(MainActivity.this, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();

        popup.dismiss();
        return false;
            }
        });
        //displaying the popup
        popup.show();

请有人帮助我。

【问题讨论】:

  • return true;,或者在返回之前移动popup.dismiss();
  • 对你的 onMenuItemClick 返回 true

标签: android select popupmenu dismiss


【解决方案1】:

试试下面的代码,它会为你工作

 popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                // if (item.getTitle().equals("one")) {
                Toast.makeText(MainActivity.this, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
                popup.dismiss();

                return true;
            }
        });

如果您将 onTouchListener 用于 EditText,我会看到您的 cmets。只需将其更改为 onClickListener 即可解决您的问题。

【讨论】:

  • 它不工作。点击四次后再次出现同样的问题。
  • 你需要在 if else 条件下输入 id 才能工作
  • 你能在你的问题中给你 menu.xml 代码吗,所以我可以帮助你提供适当的代码
  • 我的菜单文件是空的。我实际上将菜单项添加为 popup.getMenu().add("one");
  • basha - onTouchListener 对着陆和升降都有响应,你需要用 onClickListener 替换它,然后使用我在这里写的代码,它会解决你的问题
【解决方案2】:

这应该是代码块。返回true 表示点击已处理。

@Override
public boolean onMenuItemClick(MenuItem item) {
   // if (item.getTitle().equals("one")) {
   Toast.makeText(MainActivity.this, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
   return true;
}

【讨论】:

  • 不工作。点击四次后它被解雇了。
  • 那么问题出在其他地方
  • 其实我是在使用editText的onTouch监听器来显示菜单
  • 我只是调试我的代码,问题出在我这边。不知道为什么我的方法校准 4 次。将检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 2021-06-20
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
相关资源
最近更新 更多