try this
public class RadioButtonAdapter extends RecyclerView.Adapter<RadioButtonAdapter.ViewHolder> {
private static final String TAG = RadioButtonAdapter.class.getSimpleName();
private List<String> tags;
private TagClickCallBack mTagClickCallBack;
private int lastCheckedPosition = -1;
public RadioButtonAdapter(TagClickCallBack tagClickCallBack) {
tags = new ArrayList<>();
this.mTagClickCallBack = tagClickCallBack;
}
public void addTags(List<String> newTags) {
tags.addAll(newTags);
notifyDataSetChanged();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.radiobtn_adapter, parent, false);
return new ViewHolder(mView);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.rdoBtnProfession.setText(tags.get(position));
holder.rdoBtnProfession.setChecked(position == lastCheckedPosition);
}
@Override
public int getItemCount() {
return tags == null ? 0 : tags.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.rdoBtnProfession)
public AppCompatCheckBox rdoBtnProfession;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
rdoBtnProfession.setOnClickListener(v -> {
lastCheckedPosition = getAdapterPosition();
notifyItemRangeChanged(0, tags.size());
mTagClickCallBack.onTagClicked(tags.get(getAdapterPosition()));
});
}
}