0

I am using android recyclerview with cardview, which populates with the data from server. I want to set itemclick event for each item and need to display a dialog with a text. this text also getting from server. it will be different for diferent items.

when I am trying like given,

 mItem=lists.getRemarks(); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new SweetAlertDialog(v.getContext()) .setTitleText("Remark") .setContentText(mItem) .show(); } }); 

it only gives the last details

3
  • Set the click listener in your view holder Commented Jun 1, 2016 at 9:13
  • thank you for your answer...... i solved it .. Commented Jun 1, 2016 at 9:18
  • 1
    if you solved your problem by your self then write you fix as answer so it will not take time of others. Commented Jun 1, 2016 at 9:22

2 Answers 2

1

somehow i solved it by setting setContentText(mItem) to setContentText(lists.getRemarks())

Sign up to request clarification or add additional context in comments.

Comments

1

Recyclerview does not have its item click listener so I have one custom class to detect it

RecyclerItemClickListner

public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { public static interface OnItemClickListener { public void onItemClick(View view, int position); public void onItemLongClick(View view, int position); } private OnItemClickListener mListener; private GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } @Override public void onLongPress(MotionEvent e) { View childView = recyclerView.findChildViewUnder(e.getX(), e.getY()); if(childView != null && mListener != null) { mListener.onItemLongClick(childView, recyclerView.getChildPosition(childView)); } } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if(childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildPosition(childView)); } return false; } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent){} @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } } 

Use it

 mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), mRecyclerView, new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { // do whatever you want on position clicked } @Override public void onItemLongClick(View view, int position) { // do whatever you want on position long press } })); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.