我正在实施一个带有开关的自定义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);
}
答案 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()
。它很容易,不需要自己做东西