Kasthuri Shravankumar
Kasthuri Shravankumar

Reputation: 679

Recyclerview :- Multiple items get selectied when one item selected after scrolled

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {

    final XContacts mContact = visibleObjects.get(position);

    holder.Name.setText(mContact.getName());

    holder.InviteTextView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            holder.InviteTextView.setText("INVITED");
        }

    });
}

holder.Name.setText :- Here i am names to recyclerview

holder.InviteTextView.setOnClickListener :- When I click on one item[invite]. After I scroll down multiple items are get invited without that item being clicked on.

My problem is:

Abninav kashayp invited if I scroll down I get problems

Upvotes: 0

Views: 484

Answers (1)

Gustavo Pagani
Gustavo Pagani

Reputation: 6988

RecyclerView, as the name says, is recycling views, that's why you are seeing 'INVITED' in other views.

In order to fix the issue, in onClickListener you should set a flag in your XContacts object:

mContact.setInvited(true);

Then you should change your onBindViewHolder code to also set the InviteTextView, just after setting the Name:

if (mContact.isInvited()) {
    holder.InviteTextView.setText("INVITED");
}
else {
    holder.InviteTextView.setText("INVITE");
}

Upvotes: 1

Related Questions