In my code I have create recyclerview with check box and default one item selected already. now I want when select other item checkbox so deselect all other items mean one i
public class MyTeamAdapter extends RecyclerView.Adapter { private Context context; private ArrayList myTeams;
private int prevSelection = -1;
public MyTeamAdapter(Context context, ArrayList myTeams) {
this.context = context;
this.myTeams = myTeams;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_my_team, parent, false));
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
final Team team = myTeams.get(position);
ViewHolder viewHolder = (ViewHolder) holder;
if (team.isTeamSelected()) {
viewHolder.checkTeam.setChecked(true);
prevSelection = position;
} else {
viewHolder.checkTeam.setChecked(false);
}
viewHolder.checkTeam.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
team.setTeamSelected(true);
if (prevSelection >= 0) {
myTeams.get(prevSelection).setTeamSelected(false);
notifyItemChanged(prevSelection);
}
prevSelection = position;
} else {
team.setTeamSelected(false);
}
}
});
}
@Override
public int getItemCount() {
return myTeams.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
RelativeLayout captainHolder, viceCaptainHolder;
CheckBox checkTeam;
TextView tvTeamName, tvCaptainName, tvCaptain, tvVCapName, tvVC, tvWcktKeeper, tvBatsMen, tvAllRounder, tvBowler;
ImageView edtTeam, viewTeam, copyTeam;
public ViewHolder(View itemView) {
super(itemView);
checkTeam = itemView.findViewById(R.id.cb_team);
tvTeamName = itemView.findViewById(R.id.tv_team_name);
captainHolder = itemView.findViewById(R.id.captain_holder);
tvCaptainName = captainHolder.findViewById(R.id.tv_player_name);
tvCaptain = captainHolder.findViewById(R.id.tv_player_type);
viceCaptainHolder = itemView.findViewById(R.id.vc_holder);
tvVCapName = viceCaptainHolder.findViewById(R.id.tv_player_name);
tvVC = viceCaptainHolder.findViewById(R.id.tv_player_type);
tvWcktKeeper = itemView.findViewById(R.id.tv_wckt_keeper);
tvBatsMen = itemView.findViewById(R.id.tv_bats_men);
tvAllRounder = itemView.findViewById(R.id.tv_all_rounder);
tvBowler = itemView.findViewById(R.id.tv_baller);
edtTeam = itemView.findViewById(R.id.edt_team);
viewTeam = itemView.findViewById(R.id.view_team);
copyTeam = itemView.findViewById(R.id.copy_team);
}
}
}