public class SectorAdapter extends RecyclerView.Adapter implements View.OnClickListener { private ArrayList sectors; private Context context; // en lugar de usar dos listeners podriamos meterlos en una clase private View.OnClickListener listener; private View.OnLongClickListener longListener; public SectorAdapter(Context context) { this.context = context; this.sectors = new ArrayList<>(); } public SectorAdapter(Context context, View.OnClickListener listener, View.OnLongClickListener longListener) { this.context = context; this.sectors = new ArrayList<>(); setOnClickListener(listener); } @NonNull @Override public SectorViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View v = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.sector_item, viewGroup, false); SectorViewHolder sectorViewHolder = new SectorViewHolder(v); v.setOnClickListener(this); return sectorViewHolder; } @Override public void onBindViewHolder(@NonNull SectorViewHolder sectorViewHolder, int i) { sectorViewHolder.shortName.setText(sectors.get(i).getShortname()); sectorViewHolder.description.setText(sectors.get(i).getDescription()); } @Override public int getItemCount() { return sectors.size(); } @Override public void onClick(View v) { if (listener != null) listener.onClick(v); } public Sector getItem(int position) { return sectors.get(position); } public void setOnClickListener(View.OnClickListener listener) { this.listener = listener; } public void clear() { sectors.clear(); } public void addAll(ArrayList sectorList) { sectors.addAll(sectorList); } class SectorViewHolder extends RecyclerView.ViewHolder { TextView shortName, description; public SectorViewHolder(View itemView) { super(itemView); shortName = itemView.findViewById(R.id.name); description = itemView.findViewById(R.id.descripotion); } } }