RecyclerView OnclickListener in a fragment

I’m trying to set a click listener on a recyclyerView in a fragment i dont know how to call the activity in the fragment all i know is parsing the context in constructor , but clickListener havent dont this before , i tried but its not working at all

public class RecView extends RecyclerView.Adapter<RecView .SuggestedViewHolder>
{
    ArrayList<SuggestedModel> suggestedModels;
    final private RecyclerViewClickListener clickListener;

    public RecView(ArrayList<SuggestedModel> suggestedModels_items, RecyclerViewClickListener clickListener)
    {
        this.suggestedModels_items = suggestedModels_items;
        this.clickListener = clickListener;
    }

    @Override
    public void onBindViewHolder(@NonNull SuggestedViewHolder holder, int position)
    {
        SuggestedModel suggestedModel=suggestedModels.get(position);
        holder.image.setImageResource(suggestedModel.getImage());
        holder.title.setText(suggestedModel.getTitle());
    }

    @NonNull
    @Override
    public SuggestedViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
    {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_recview_suggested_item,parent,false);
        final SuggestedViewHolder suggestedViewHolder = new SuggestedViewHolder(view);
        return suggestedViewHolder;
    }


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

    public class SuggestedViewHolder extends RecyclerView.ViewHolder
    {

        CircleImageView image;
        TextView title;

        public SuggestedViewHolder(@NonNull View itemView)
        {
            super(itemView);
            image = itemView.findViewById(R.id.suggestedImage);
            title = itemView.findViewById(R.id.suggestedTitle);
        }
    }


//////////

this is what i called in the fragment 

   

    private void getSuggestedData()
    {

        rec_TopMost.setHasFixedSize(true);
        rec_TopMost.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.HORIZONTAL,false));
        suggestedModels.add(new SuggestedModel(R.drawable.s1,"Movie1"));
        suggestedModels.add(new SuggestedModel(R.drawable.s2,"Movie2"));
        suggestedModels.add(new SuggestedModel(R.drawable.s3,"Movie3"));
        suggestedModels.add(new SuggestedModel(R.drawable.s4,"Movie4"));
        suggestedModels.add(new SuggestedModel(R.drawable.s5,"Movie5"));
        suggestedModels.add(new SuggestedModel(R.drawable.s6,"Movie6"));
        suggestedModels.add(new SuggestedModel(R.drawable.s7,"Movie7"));
        suggestedModels.add(new SuggestedModel(R.drawable.s8,"Movie8"));
        suggestedModels.add(new SuggestedModel(R.drawable.s9,"Movie9"));

        RecView= new RecView( suggestedModel,(RecyclerViewClickListener) getContext());
        rec_TopMost.setAdapter(RecView);

    }

how am i supposed to do this i tried man things it doesnt work

{

    RecView= new RecView( suggestedModels,  getContext());
            rec_TopMost.setAdapter(RecView);
}

if i do this it shows red line. under getContext();

>Solution :

thats not a problem with Activity or Fragment, your RecView takes RecyclerViewClickListener as second parameter, make your Fragment implements this interface just like Activity does

Leave a Reply