如何在Android中单击项目时关闭PopUp菜单

时间:2018-01-22 09:01:30

标签: android select popupmenu dismiss

我在我的代码中使用弹出菜单。它完美地运作。但是当我从中选择一个项目时,菜单并没有消失。 我试过了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();

请有人帮助我。

2 个答案:

答案 0 :(得分: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,我会看到您的评论。只需将其更改为 onClickListener ,您的问题就会得到解决。

答案 1 :(得分:0)

这应该是代码块。返回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;
}