Onclicklistener not working on recycliewiew

I work with recyclerview, the same code below works fine for me, but I tried the following code, but it doesn't work

recyclerView = (RecyclerView)v.findViewById(R.id.datelist); recyclerView.setClickable(true); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerView.setAdapter(adapter); adapter.setOnItemClickListener(this); 

in adapter

 public class UpdateHolder extends RecyclerView.ViewHolder implements View .OnClickListener,CompoundButton.OnCheckedChangeListener { TextView uname; TextView uversn; TextView usitting; public UpdateHolder(View itemView) { super(itemView); uname = (TextView) itemView.findViewById(R.id.update_name); uversn = (TextView) itemView.findViewById(R.id.update_version); usitting=(TextView) itemView.findViewById(R.id.sitting_type); Log.i(LOG_TAG, "Adding Listener"); itemView.setOnClickListener(this); } @Override public void onClick(View v) { myClickListener.onItemClick(getPosition(), v); } } public void setOnItemClickListener(MyClickListener myClickListener) { this.myClickListener = myClickListener; } 

I also tried using Adapter in onCreateViewHolder

Please help me

+6
source share
2 answers

For me, the solution was to remove the below from the CardView xml file.

 android:clickable="true" 

Apparently, this attribute overrides any clickListeners buttons added to the view.

+11
source

In recyclerView you need to create a viewHolder, as shown below, you need to set the click listener in viewHolder View, as shown below.

 public static class ViewHolder extends RecyclerView.ViewHolder { private final TextView textView; private final MyEditText edtTest; public ViewHolder(View v) { super(v); // Define click listener for the ViewHolder View. v.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG, "Element " + getPosition() + " clicked."); } }); v.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Log.e("Demo", "Long click done bro--------------------->"); return false; } }); textView = (TextView) v.findViewById(R.id.textView); edtTest = (MyEditText) v.findViewById(R.id.edtTest); } public TextView getTextView() { return textView; } public EditText getEdtTest() { return edtTest; } } 
+3
source

All Articles