Skip to content
This repository was archived by the owner on Mar 24, 2023. It is now read-only.

Duplicates in recycler view. #152

Open
pharma-vie opened this issue Aug 12, 2017 · 1 comment
Open

Duplicates in recycler view. #152

pharma-vie opened this issue Aug 12, 2017 · 1 comment

Comments

@pharma-vie
Copy link

pharma-vie commented Aug 12, 2017

How to make the lise authorize no duplicates. It is an element exists twice it appears only once.

MyAdapter

public abstract class MyAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {

  public ArrayList<Players> items = new ArrayList<>();

  public CityListAdapter() {
    setHasStableIds(true);
  }

  public void add(Players object) {
    items.add(object);
    notifyDataSetChanged();
  }

  public void add(int index, Players object) {
    items.add(index, object);
    notifyDataSetChanged();
  }

  public void addAll(Collection<? extends Players> collection) {
    if (collection != null) {
      items.addAll(collection);
      notifyDataSetChanged();
    }
  }


  public Players getItem(int position) {
    return items.get(position);
  }

  @Override
  public long getItemId(int position) {
    return position;
  }

  @Override
  public int getItemViewType(int position) {
    return position;
  }

  @Override
  public int getItemCount() {
    return items.size();
  }

}

Holder:

public class CityListWithHeadersAdapter extends CityListAdapter<RecyclerView.ViewHolder>
        implements StickyRecyclerHeadersAdapter<RecyclerView.ViewHolder> {



    //item_title:

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_view, parent, false);
        return new MyViewHolder (view);
    }

    @Override
    public void onBindViewHolder (RecyclerView.ViewHolder holder, final int position) {
        String name = getItem (position).getName();
        ((MyViewHolder)holder).item_title.setText(name);

        String name2 = getItem (position).getClub();
        ((MyViewHolder)holder).item_subtitle.setText(name2);

        ColorGenerator generator = ColorGenerator.MATERIAL;
        int color1 = generator.getRandomColor();

        TextDrawable drawable = TextDrawable.builder()
                .beginConfig()
                .height(60)
                .width(60)
                .endConfig()
                .buildRound(""+name.charAt(0), color1);
        ((MyViewHolder)holder).drawable.setImageDrawable(drawable);

    }

    //header_view:
    @Override
    public long getHeaderId(int position) {
        return getItem(position).getCategory().length();
    }

    @Override
    public RecyclerView.ViewHolder onCreateHeaderViewHolder(ViewGroup parent) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.header_view, parent, false);
        return new MyViewHolder (view);
    }

    @Override
    public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder, int position) {

        String name = getItem (position).getCategory ();
        ((MyViewHolder)holder).header_title.setText (name);

        String name2 = getItem (position).getClub ();
        ((MyViewHolder)holder).header_subTitle.setText (name2);
    }

    //MyViewHolder:
    public class MyViewHolder extends RecyclerView.ViewHolder {
        ImageView drawable;
        private final TextView item_title;
        private final TextView item_subtitle;

        private final TextView header_subTitle;
        private final TextView header_title;

        MyViewHolder(View itemView) {
            super (itemView);

            header_title = itemView.findViewById (R.id.header_title);
            header_subTitle = itemView.findViewById (R.id.header_subTitle);
            drawable = itemView.findViewById (R.id.drawable);
            item_title = itemView.findViewById (R.id.item_title);
            item_subtitle = itemView.findViewById (R.id.item_subtitle);


            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                }
            });

            itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    return false;
                }
            });
        }

    }

    //color:
    private int getRandomColor() {
        SecureRandom rgen = new SecureRandom();
        return Color.HSVToColor(2000, new float[]{
                rgen.nextInt(35), 1, 1
        });
    }


}
@mtariquekhan
Copy link

I am also facing the same problem. Having the Duplicates value

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants