选择所有选项和单个项目选择recyclerview android

时间:2017-03-15 09:49:39

标签: android android-recyclerview recycler-adapter selectall android-switch

我正在实施一个带有开关的自定义Recyclerview,用于选择项目。我有一个"全选" App Bar右上角的选项(顶部栏)。我想允许用户使用全选选项,并允许在recyclerview中选择单个项目。

我不知道如何与Select All一起实施个人选择。 在使用全选选项后取消选择某个项目时,当滚动列表时,该项目会自动被选中,因为isSelectedAll标志在下面的代码中的onBindViewHolder方法中设置为true。

******SELECT ALL CLICK LISTENER IN ACTIVITY CLASS******
mBinding.imageViewActionSelect.setOnClickListener(v -> {
    mAdapter.selectAll();
});

******ADAPTER CLASS******
public void selectAll() {
    isSelectedAll = true;
    notifyDataSetChanged();
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    if (isSelectedAll) {
        holder.mSwitchView.setChecked(true);
    }
    else
        holder.mSwitchView.setChecked(false);
}

2 个答案:

答案 0 :(得分:0)

首先,将一个变量isSelected添加到您的POJO类中,然后在选择All选项时,通过在循环中运行项目列表使该变量为true,然后调用adapter.notifyDataSetChanged( )。现在,当您选择或取消选择单个项目时,根据您的需要将isSelected变量设置为true或false,并且不要忘记调用notifyDataSetChanged()。你很高兴。

答案 1 :(得分:0)

您可以使用此FastAdapter库:https://github.com/mikepenz/FastAdapter。单选很简单,它已经为您完成了。对于多选,您可以循环浏览所有项目并致电mAdapter.toggleSelection(position)。当您需要所选项目时,您可以轻松拨打mAdapter.getSelection()。它很容易,不需要自己做东西