我正在实现带有项目选择的Switch的自定义循环电视。我在App Bar(顶栏)的右角有一个"选择所有"选项。我想允许用户使用选择全选项,还允许在Recyclerview中选择单个项目。
我不知道如何与选择一起实现个人选择。在使用"选择全选项"之后,当项目被取消选择时,当列表滚动时,在以下代码中的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);
}
first ,将一个变量添加到您的pojo类中,然后在选择所有选项时,通过在循环中运行项目列表来使该变量成为true,然后致电apapter.notifydatasetchanged()。现在,当您选择或取消选择单个项目时,根据您的需求使该变量truible或false,并且不要忘记致电notifydatasetchanged()。你很好。
您可以使用此FastAdapter库:https://github.com/mikepenz/fastadapter。单选项很容易,它已经为您完成。对于Multi Select,您只需循环浏览所有项目并致电mAdapter.toggleSelection(position)
即可。当您需要选定的项目时,您可以轻松调用mAdapter.getSelection()
。它很容易,无需自己做