如何删除上下文操作栏(CAB)中的默认项?

时间:2014-01-11 02:51:46

标签: android

在Stack Overflow中已经有一些类似的问题但是所选择的解决方案都没有对我有用。这些链接似乎做出了不同的选择,但我尝试了,我无法删除默认情况下的第一个选项。

Link 1 Link 2 Link 3 Link 4

忽略项目图标。 我需要删除圈子中的项目。

example

private class ModoAccion implements ActionMode.Callback {

   private ArrayList<Integer> listaOpciones = new ArrayList<Integer>();

    @Override
    public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
        MenuInflater inflater = actionMode.getMenuInflater();
        menu.clear();
        inflater.inflate(R.menu.admin_detalle_emp_action_mode, menu);
        actionMode.invalidate();
        return true;
    }

    @Override
    public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {

        listaOpciones.add(R.id.accion_cancelar);
        listaOpciones.add(R.id.accion_guardar);

        for (int i = 0; i < menu.size(); i++) {
            MenuItem item = menu.getItem(i);
            if (!listaOpciones.contains(item.getItemId()))
                item.setVisible(false);
        }

        return false;
    }

    @Override
    public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case R.id.accion_cancelar:
                actionMode.finish(); // Action picked, so close the CAB
                return true;
            default:
                return false;
        }
    }

    @Override
    public void onDestroyActionMode(ActionMode actionMode) {
        mActionMode = null;
    }
}

1 个答案:

答案 0 :(得分:0)

你实际上无法摆脱上下文操作栏的那个区域。但是,您可以通过样式化应用程序来更改其drawable(如果您愿意,甚至可以改为任何内容)。只需覆盖项目名称android:actionModeCloseDrawable并插入您自己的drawable。