Android RecyclerView : notifyDataSetChanged() IllegalStateException

前端 未结 22 1789
天涯浪人
天涯浪人 2020-11-28 02:57

I\'m trying to update the items of a recycleview using notifyDataSetChanged().

This is my onBindViewHolder() method in the recycleview adapter.

@Over         


        
22条回答
  •  清酒与你
    2020-11-28 03:41

            @Override
            public void onBindViewHolder(final MyViewHolder holder, final int position) {
                holder.textStudentName.setText(getStudentList.get(position).getName());
                holder.rbSelect.setChecked(getStudentList.get(position).isSelected());
                holder.rbSelect.setTag(position); // This line is important.
                holder.rbSelect.setOnClickListener(onStateChangedListener(holder.rbSelect, position));
    
            }
    
            @Override
            public int getItemCount() {
                return getStudentList.size();
            }
            private View.OnClickListener onStateChangedListener(final RadioButton checkBox, final int position) {
                return new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if (checkBox.isChecked()) {
                            for (int i = 0; i < getStudentList.size(); i++) {
    
                                getStudentList.get(i).setSelected(false);
    
                            }
                            getStudentList.get(position).setSelected(checkBox.isChecked());
    
                            notifyDataSetChanged();
                        } else {
    
                        }
    
                    }
                };
            }
    

提交回复
热议问题