1

enter image description here

I created youtube like app with one videoview (on top) and recycler view (down of video view). And i am stuck at, i want to create onclicklistner on recyclerview items and change video path to change video, but how to access videoview component (which in created in mainactivity) in adapter class to set path of videoview?

1 Answers1

2

Define an Interface for item click event:

interface OnAdapterItemClickListener {
    void onAdapterItemClickListener(int position);
}

Make Your Activity implement and override its method:

public class MaiActivity extends AppCompatActivity implements OnAdapterItemClickListener {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        RecyclerView recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setAdapter(new Adapter(this));
    }

    @Override
    public void onAdapterItemClickListener(int position) {
        //CALL YOUR VIDEO PLAYER OR ANY OTHER COMPONENT AND VIEW
    }

}

In your Adapter and ViewHolder for each ViewHolder define a click listener and then call the interface we defined.

public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> {

    private OnAdapterItemClickListener adapterItemClickListener = null;

    public Adapter(OnAdapterItemClickListener listener) {
        this.adapterItemClickListener = listener;
    }

    class MyViewHolder extends RecyclerView.ViewHolder implements OnClickListener {

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            itemView.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
            adapterItemClickListener.onAdapterItemClickListener(getAdapterPosition());
        }
    }


}
Arrowsome
  • 2,649
  • 3
  • 10
  • 35