你如何在Android中“缩小”菜单?

时间:2016-08-03 13:44:48

标签: android android-contextmenu

我有一个上下文操作栏,我有一个名为“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");
                    }
                }

我正考虑在onDestroyActionMode()之后立即调用_root.removeView(view);,但我不知道要传递哪些参数。

感谢任何建议,谢谢!

2 个答案:

答案 0 :(得分:0)

如果您要隐藏正在选择的项目,可以拨打

menuItem.setVisible(false);

或者,如果您要从菜单中删除所有项目,可以致电

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

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

答案 1 :(得分:0)

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