如何在安卓中"deflate"菜单?



我有一个上下文操作栏,其中有一个名为"DELETE"的设置。当我按下那个按钮时,我希望CAB菜单消失。

                class MyActionModeCallBack implements android.view.ActionMode.Callback {
                    @Override
                    public boolean onCreateActionMode(android.view.ActionMode actionMode, Menu menu) {
                        actionMode.getMenuInflater().inflate(R.menu.event_menu, menu);
                        return true;
                    }
                    @Override
                    public boolean onPrepareActionMode(android.view.ActionMode actionMode, Menu menu) {
                        return false;
                    }
                    @Override
                    public boolean onActionItemClicked(android.view.ActionMode actionMode, MenuItem menuItem) {
                        int id = menuItem.getItemId();
                        if (id == R.id.delete) {
                                          *******
                            _root.removeView(view);
                            // This is where I want to remove the CAB menu
                                          *******
                        }
                        return false;
                    }
                    @Override
                    public void onDestroyActionMode(android.view.ActionMode actionMode) {
                        ((RelativeLayout)view).removeAllViews();
                        view.setBackgroundColor(0xFF00FF00);
                        view.setTag(R.string.viewSelected, "0");
                    }
                }

我想在_root.removeView(view);之后立即调用onDestroyActionMode(),但我不知道该传递什么参数。

欢迎提出任何建议,谢谢!

如果您试图隐藏所选项目,可以调用

menuItem.setVisible(false);

或者,如果你想从菜单中删除所有项目,你可以调用

optionsMenu.clear();

在onActionItemClicked()方法中。您可以将菜单保存到onCreateOptionsMenu方法中的字段,如下所示:

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    optionsMenu = menu
}

调用actionMode.finish()。这将调用onDestroyActionMode()回调。

相关内容

  • 没有找到相关文章

最新更新