Java recyclerview选择如何侦听SelectionCenter上的事件和SelectionExit上的事件

Java recyclerview选择如何侦听SelectionCenter上的事件和SelectionExit上的事件,java,android,Java,Android,我使用以下内容来使用recyclerview选择: selectionTracker = new SelectionTracker.Builder<>("lazy-load-img-list-selection", this.recyclerView, new KeyProvider(1), new Lookup(), StorageStrategy.createLongStorage()).build(); 切换按钮“删除选择”“清除选择”可见性 怎么办 更新: 我可以检测选择状

我使用以下内容来使用recyclerview选择:

selectionTracker = new SelectionTracker.Builder<>("lazy-load-img-list-selection", this.recyclerView, new KeyProvider(1), new Lookup(), StorageStrategy.createLongStorage()).build();
切换按钮“删除选择”“清除选择”可见性

怎么办

更新:

我可以检测选择状态回收器适配器#onBindViewHolder,但这不是一个好方法,当确定onSelectionExit时,我必须检测所有项目状态每个渲染每个项目

我找到了解决方案:

  selectionTracker.addObserver(new SelectionTracker.SelectionObserver() {
        @Override
        public void onItemStateChanged(@NonNull Object key, boolean selected) {
            super.onItemStateChanged(key, selected);
            Selection selection = selectionTracker.getSelection();
            if (selected && selection.size() == 1) {
                if (onSelectionEnter != null) {
                    onSelectionEnter.run();
                }
            } else if (!selected && selection.size() == 0) {
                if (onSelectionExit != null) {
                    onSelectionExit.run();
                }
            }
        }
    });
  selectionTracker.addObserver(new SelectionTracker.SelectionObserver() {
        @Override
        public void onItemStateChanged(@NonNull Object key, boolean selected) {
            super.onItemStateChanged(key, selected);
            Selection selection = selectionTracker.getSelection();
            if (selected && selection.size() == 1) {
                if (onSelectionEnter != null) {
                    onSelectionEnter.run();
                }
            } else if (!selected && selection.size() == 0) {
                if (onSelectionExit != null) {
                    onSelectionExit.run();
                }
            }
        }
    });