如何从上下文操作模式处理recyclerView项目的单击侦听器?

时间:2019-03-27 19:58:38

标签: android android-recyclerview onitemclicklistener contextual-action-bar android-actionmode

enter image description here

我想让recyclerview项目像这张图片一样点击。当我选择recyclerview项目时,长按鼠标键,然后启用上下文操作模式。如果我只选择一个项目,则不显示编辑菜单项目。当我单击编辑菜单时,我想要项目然后单击recyclerView选中的项目并做一些工作。但是我做不到。请帮助我。我是android开发中的新手。 高级谢谢。

1 个答案:

答案 0 :(得分:0)

我为您获取了一些信息,可能会对您有所帮助

一旦实现了setSelectable(),您就可以使用常规的 ActionMode.Callback 来实现 CHOICE_MODE_MULTIPLE_MODAL 的其余部分。从相关的回调方法中调用您的setSelectable():

private ActionMode.Callback mDeleteMode = new ActionMode.Callback() {
        @Override
        public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
            setSelectable(true);
            return false;
        }

        @Override
        public void onDestroyActionMode(ActionMode actionMode) {
            setSelectable(false);
        }

        @Override
        public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { ... }

        @Override
        public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { ... }
    }

然后使用长按侦听器打开操作模式:

private class CrimeHolder extends SwappingHolder
            implements View.OnClickListener, View.OnLongClickListener {

        ...

        public CrimeHolder(View itemView) {
            ...

            itemView.setOnClickListener(this);
            itemView.setOnLongClickListener(this);
            itemView.setLongClickable(true);
        }

        @Override
        public boolean onLongClick(View v) {
            ActionBarActivity activity = (ActionBarActivity)getActivity();
            activity.startSupportActionMode(mDeleteMode );
            setSelected(this, true);
            return true;
        }
    }

让我知道您是否对这段代码有任何想法。如果您想了解更多,请访问link,这是 Bill Phillips 的精彩文章。