you have to make two interfaces to handle click event and long click event into the adapter for recyclview.
Like make below interface into adapter class..
onItemClickListner onItemClickListner;
onItemLongClickListner onItemLongClickListner;
public void setOnItemLongClickListner(RecyclerViewAdpater.onItemLongClickListner onItemLongClickListner) {
this.onItemLongClickListner = onItemLongClickListner;
}
public void setOnItemClickListner(RecyclerViewAdpater.onItemClickListner onItemClickListner) {
this.onItemClickListner = onItemClickListner;
}
public interface onItemClickListner {
void onClick(String str);//pass your object types.
}
public interface onItemLongClickListner{
void onLongClick(String str);
}
@Override
public void onBindViewHolder(ItemViewHolder holder, int position) {
String data = mStringList.get(position); // if you pass object of class then create that class object.
holder.textView.setText(data);
// below code handle click event on recycler view item.
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onItemClickListner.onClick(data);
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
onItemLongClickListner.onLongClick("Hiii");
return false;
}
});
}
then after in activity when define recycler view after adapter define and bind into recycler view then get both click event like below ..
recyclerViewAdpater.setOnItemClickListner(new RecyclerViewAdpater.onItemClickListner() {
@Override
public void onClick(String str) {
Toast.makeText(getApplicationContext(),"Value of Click"+str,Toast.LENGTH_SHORT).show();
}
});
recyclerViewAdpater.setOnItemLongClickListner(new RecyclerViewAdpater.onItemLongClickListner() {
@Override
public void onLongClick(String str) {
Toast.makeText(getApplicationContext(),"Value of Long Click"+str,Toast.LENGTH_SHORT).show();
}
});