Guest User

Untitled

a guest
Oct 21st, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
  2. private OnItemClickListener mListener;
  3.  
  4. public interface OnItemClickListener {
  5. public void onItemClick(View view, int position);
  6.  
  7. public void onLongItemClick(View view, int position);
  8. }
  9.  
  10. GestureDetector mGestureDetector;
  11.  
  12. public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) {
  13. mListener = listener;
  14. mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
  15. @Override
  16. public boolean onSingleTapUp(MotionEvent e) {
  17. return true;
  18. }
  19.  
  20. @Override
  21. public void onLongPress(MotionEvent e) {
  22. View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
  23. if (child != null && mListener != null) {
  24. mListener.onLongItemClick(child, recyclerView.getChildAdapterPosition(child));
  25. }
  26. }
  27. });
  28. }
  29.  
  30. @Override
  31. public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
  32. View childView = view.findChildViewUnder(e.getX(), e.getY());
  33. if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
  34. mListener.onItemClick(childView, view.getChildAdapterPosition(childView));
  35. return true;
  36. }
  37. return false;
  38. }
  39.  
  40. @Override
  41. public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) {
  42. }
  43.  
  44. @Override
  45. public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
  46. }
  47. }
Add Comment
Please, Sign In to add comment