Android 根据选择的数量更改操作栏项目

Android 根据选择的数量更改操作栏项目,android,android-actionbar,android-recyclerview,contextual-action-bar,multipleselection,Android,Android Actionbar,Android Recyclerview,Contextual Action Bar,Multipleselection,如何根据在RecyclerView中选择了多少项来更改ActionBar菜单包含的内容?例如,当在“选择模式”中选择一张卡时,我希望编辑图标(铅笔)可见。一旦选择了多个项目,我希望编辑图标从选项中消失 下面的代码:我试图创建一个条件,在该条件下,mdelectionmode创建一个菜单,如果所选项目的数量为,则会显示一个编辑图标。使用ActionMode实例操作ActionBar菜单 @Override public boolean onLongClick(View v) { this.

如何根据在RecyclerView中选择了多少项来更改
ActionBar
菜单包含的内容?例如,当在“选择模式”中选择一张卡时,我希望编辑图标(铅笔)可见。一旦选择了多个项目,我希望编辑图标从选项中消失


下面的代码:我试图创建一个条件,在该条件下,
mdelectionmode
创建一个菜单,如果所选项目的数量为
,则会显示一个编辑图标。使用ActionMode实例操作ActionBar菜单

@Override
public boolean onLongClick(View v) {
    this.actionMode = getActionBar().startActionMode(mDeleteMode);
    mMultiSelector.setSelected(this, true);
    return true;
}
下面是初始化
menuItem
的地方。请记住,
onCreateActionMode
驻留在新的modalMultiSelector或Callback
的创建过程中

    @Override
    public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
        super.onCreateActionMode(actionMode, menu);getActivity().getMenuInflater().inflate(R.menu.menu_subject_manager, menu);
        mEditItem = actionMode.getMenu().findItem(R.id.action_edit);
        mActionMenu = actionMode.getMenu();
        return true;
    }
现在,
mEditItem
可以轻松删除或替换,因为
mEditItem
是一个实例变量。我将在我的
onClick()中提供我的实现

就在这里。对我来说,我只需要根据在任何给定时刻选择的项目数量,让一个项目消失/重新出现。
.setVisible()
方法为我解决了这个问题。我希望这能帮助有类似问题的人

    @Override
    public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
        super.onCreateActionMode(actionMode, menu);getActivity().getMenuInflater().inflate(R.menu.menu_subject_manager, menu);
        mEditItem = actionMode.getMenu().findItem(R.id.action_edit);
        mActionMenu = actionMode.getMenu();
        return true;
    }
@Override
    public void onClick(View v) {

        if (sInfo == null) {
            return;
        }
        if (!mMultiSelector.tapSelection(this)) {
            // if not in selection mode, this is handled
        }
        if (mMultiSelector.tapSelection(this)) {
            mMultiSelector.tapSelection(this);

            switch (mMultiSelector.getSelectedPositions().size()) {
                case 0:
                    actionMode.finish();
                    break;
                case 1:
                    mEditItem.setVisible(true);
                    break;
                case 2:
                    mEditItem.setVisible(false);
                    break;
                default:
                    break;
            }
        }
    }