How to access component of MainActivity in recycler view to make onclick listener?

痞子三分冷 提交于 2020-07-23 08:54:24

问题


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:


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());
        }
    }


}


来源:https://stackoverflow.com/questions/61733698/how-to-access-component-of-mainactivity-in-recycler-view-to-make-onclick-listene

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!