Comment puis-je sélectionner toutes les cases à cocher dans recyclerView?
J'essaie de le faire comme ceci:
dans l'adaptateur:
public void selectAll(){
Log.e("onClickSelectAll","yes");
isSelectedAll=true;
notifyDataSetChanged();
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
PersonDTO item = dataSet.get(position);
holder.tvName.setText(item.getName());
if (!isSelectedAll) holder.cbSelect.setSelected(false);
else holder.cbSelect.setSelected(true);}
Dans layout
Activity
J'ai un button
avec onClickListener
:
private void onClickSelectAll(View view) {
getSelectPersonsAdapter().selectAll();
}
Vous avez fait une simple erreur ici
if (!isSelectedAll) holder.select_item.setChecked(false);
else holder.select_item.setChecked(true);
changer setSelected
en setChecked
c'est tout
pour les deux Tout sélectionner et Tout désélectionner
activité
checkall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(checkall.isChecked()){
categoryAdapter.selectAll();
}
else {
categoryAdapter.unselectall();
}
}
});
dans l'adaptateur
public void selectAll(){
isSelectedAll=true;
notifyDataSetChanged();
}
public void unselectall(){
isSelectedAll=false;
notifyDataSetChanged();
}
@Override
public void onBindViewHolder(@NonNull final MyviewHolder holder, int position) {
final CategoryListItems list = categoryListItems.get(position);
holder.text.setText(list.getName());
if (!isSelectedAll){
holder.checkbox.setChecked(false);
}
else holder.checkbox.setChecked(true);