首页 > 解决方案 > 关闭 Android 弹出菜单

问题描述

我正在尝试使用一个弹出菜单,该菜单使用动态添加的 EditText 框的视图。

当我没有在 onTouch 方法中创建新的弹出菜单时,弹出窗口会按预期关闭,但是我想不出一种方法来以这种方式使用被触摸的 EditText 的视图。相反,弹出窗口将显示在最后添加的 EditText 的视图中。

View.OnTouchListener subjectListener(final EditText editText) {
        return new View.OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                popupMenu = new PopupMenu(MainActivity.this, editText);
                popupMenu.getMenu().add("works");
                popupMenu.show();
                popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        popupMenu.getMenu().close();
                        list.get((Integer) editText.getTag()).setText(item.getTitle());
                        return true;
                    }
                });
                return false;
            }
        };
    }

使用此代码,弹出菜单也会准确显示在我想要的位置,除非我触摸另一个 EditText 几次,否则它不会关闭。这让我觉得我正在创建多个弹出菜单或其他东西。

有任何想法吗?

标签: javaandroid

解决方案


popupmenu.dismiss(); 

您可以使用它来关闭弹出窗口


推荐阅读