RecyclerView doesn't have a method onItemClickListener to handle click events on RecyclerView's item. We will create a new class which will handle click events.
Refer this Android Recycler View to create recycler view and then follow these steps-
1. Create a new class RecyclerTouchListener and implement RecyclerView.OnItemTouchListener-
Refer this Android Recycler View to create recycler view and then follow these steps-
1. Create a new class RecyclerTouchListener and implement RecyclerView.OnItemTouchListener-
public class RecyclerTouchListener implements RecyclerView.OnItemTouchListener{ private GestureDetector gestureDetector; private ClickListener clickListener; public RecyclerTouchListener(Context context,final RecyclerView recyclerView ,final ClickListener clickListener) { this.clickListener=clickListener; gestureDetector=new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } @Override public void onLongPress(MotionEvent e) { } }); } @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { View child=rv.findChildViewUnder(e.getX(),e.getY()); if(child!=null && clickListener!=null && gestureDetector.onTouchEvent(e)){ clickListener.onClick(child,rv.getChildAdapterPosition(child)); } return false; } @Override public void onTouchEvent(RecyclerView rv, MotionEvent e) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } public interface ClickListener{ void onClick(View view, int position); void onLongClick(View view,int position); } }2. Open class which has recyclerView and type this code-
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), recyclerView, new RecyclerTouchListener.ClickListener() { @Override public void onClick(View view, int position) { //Your code } @Override public void onLongClick(View view, int position) { } }));
Everything is very open with a very clear explanation of the issues.
ReplyDeleteIt was really informative. Your website is extremely helpful.
Thank you for sharing!
Thank you so much !!
Delete