我试图使用弹出菜单,该菜单使用动态添加的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。这让我觉得我正在彼此后面创建多个弹出菜单。

有任何想法吗?

最佳答案

popupmenu.dismiss();


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

关于java - 关闭Android弹出菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56433902/

10-11 23:17
查看更多