How to use OnClick or onLongclick in two or more then two item in recyclearview adpter in android stuio
Here is simple method to performed two or more then two on
Click or On Long Click in Adapter android studio
Step 1: create interface in Adapter Paste this above onCreateViewHolder method
private Adpter.OnItemClickListner mlistner;
private Adpte.OnItemLongClickListner mlonglistner;
public interface OnItemClickListner {
void onItemClick(int posistion, String type);
}
public interface OnItemLongClickListner {
void onItemLongClick(int posistion,String
type);
}
public void
setOnItemClickListener(Adpter_CaptionSaved.OnItemClickListner listener) {
mlistner = listener;
}
public void
setOnItemLOngClickListener(Adpter_CaptionSaved.OnItemLongClickListner
listener) {
mlonglistner = listener;
}
Step 2: pass mlistner and mlonglistner as a parameter into ViewHolder class
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup
parent, int viewType) {
View v =
LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_hastage_saved,
parent, false);
return new ViewHolder(v, mlistner,
mlonglistner);
}
Step 3: on Viewholder class set on Click in which element you want to performe . pass a type as a String what you to pass we use this in Mainactivity to check which element is clicked
public class ViewHolder extends RecyclerView.ViewHolder {
ImageButton btn_copy, bnt_delete,
imageview_profile,imageview_full;
public ViewHolder(@NonNull final View
itemView, final
Adpter_CaptionSaved.OnItemClickListner listners, final
Adpter_CaptionSaved.OnItemLongClickListner longClickListner) {
super(itemView);
btn_copy =
itemView.findViewById(R.id.btn_hastagesaved_copy);
bnt_delete =
itemView.findViewById(R.id.btn_hastagesaved_delete);
imageview_profile =
itemView.findViewById(R.id.btn_imageview_full);
imageview_full =
itemView.findViewById(R.id.btn_imageview_full);
bnt_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void
onClick(View v) {
if
(listners != null) {
int posistion = getAdapterPosition();
listners.onItemClick(posistion, "DELETE");
}
}
});
btn_copy.setOnClickListener(new
View.OnClickListener() {
@Override
public void
onClick(View v) {
if
(listners != null) {
int posistion = getAdapterPosition();
listners.onItemClick(posistion, "COPY");
}
}
});
imageview_full.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean
onLongClick(View v) {
if
(longClickListner != null) {
int posistion = getAdapterPosition();
longClickListner.onItemLongClick(posistion, "FULLIMAGE");
}
return true;
}
});
imageview_profile.setOnLongClickListener(new
View.OnLongClickListener() {
@Override
public boolean
onLongClick(View v) {
if
(longClickListner != null) {
int posistion = getAdapterPosition();
longClickListner.onItemLongClick(posistion, "FULLPROFILE");
}
return true;
}
});
}
}
Step 4: view this final adpter class
public class Adpter_CaptionSaved extends
RecyclerView.Adapter<Adpter_CaptionSaved.ViewHolder> {
List<List_Hastage> list_Hastage ;
Context context;
public Adpter_CaptionSaved(List<List_Hastage>
list_hastages, Context context) {
this.list_hastages = list_hastages;
this.context = context;
}
private Adpter_CaptionSaved.OnItemClickListner mlistner;
private Adpter_CaptionSaved.OnItemLongClickListner
mlonglistner;
public interface OnItemClickListner {
void onItemClick(int posistion, String type);
}
public void
setOnItemClickListener(Adpter_CaptionSaved.OnItemClickListner listener) {
mlistner = listener;
}
public interface OnItemLongClickListner {
void onItemLongClick(int posistion,String
type);
}
public void
setOnItemLOngClickListener(Adpter_CaptionSaved.OnItemLongClickListner
listener) {
mlonglistner = listener;
}
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup
parent, int viewType) {
View v =
LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_hastage_saved,
parent, false);
return new ViewHolder(v, mlistner,
mlonglistner);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final
int position) {
final List_Hastage listHastage =
list_hastages.get(position);
if (!listHastagetype.getI().isEmpty()) {
Picasso.get().load(listHastagetype.getI()).networkPolicy(NetworkPolicy.OFFLINE).into(holder.imageView,
new Callback() {
@Override
public void
onSuccess() {
Picasso.get().load(listHastagetype.getI()).networkPolicy(NetworkPolicy.OFFLINE).into(holder.imageView);
}
@Override
public void
onError(Exception e) {
Picasso.get().load(listHastagetype.getI()).into(holder.imageView);
}
});
}
}
@Override
public int getItemCount() {
return list_hastages.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageButton btn_copy, bnt_delete,
imageview_profile,imageview_full;
public ViewHolder(@NonNull final View
itemView, final Adpter_CaptionSaved.OnItemClickListner listners, final
Adpter_CaptionSaved.OnItemLongClickListner longClickListner) {
super(itemView);
btn_copy =
itemView.findViewById(R.id.btn_hastagesaved_copy);
bnt_delete =
itemView.findViewById(R.id.btn_hastagesaved_delete);
imageview_profile =
itemView.findViewById(R.id.btn_imageview_full);
imageview_full =
itemView.findViewById(R.id.btn_imageview_full);
bnt_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void
onClick(View v) {
if
(listners != null) {
int posistion = getAdapterPosition();
listners.onItemClick(posistion, "DELETE");
}
}
});
btn_copy.setOnClickListener(new
View.OnClickListener() {
@Override
public void
onClick(View v) {
if
(listners != null) {
int posistion = getAdapterPosition();
listners.onItemClick(posistion, "COPY");
}
}
});
imageview_full.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean
onLongClick(View v) {
if
(longClickListner != null) {
int posistion = getAdapterPosition();
longClickListner.onItemLongClick(posistion, "FULLIMAGE");
}
return true;
}
});
imageview_profile.setOnLongClickListener(new
View.OnLongClickListener() {
@Override
public boolean
onLongClick(View v) {
if
(longClickListner != null) {
int posistion = getAdapterPosition();
longClickListner.onItemLongClick(posistion, "FULLPROFILE");
}
return true;
}
});
}
}
}
Step 5: now go to Mainactivity perform adpter onclick and longClickListner
adpter.setOnItemClickListener(new Adpter.OnItemClickListner() {
@Override
public void
onItemClick(int posistion, String type) {
if
(type.equals("DELETE")) {
// perfrom task when DELETE is clicked
}
if
(type.equals("COPY")) {
// perfrom task when COPY is clicked
}
}
});
adpter_caption.setOnItemLOngClickListener(new
Adpter_CaptionSaved.OnItemLongClickListner() {
@Override
public void
onItemLongClick(int posistion,String type) {
if
(type.equals("FULLIMAGE")) {
// perfrom task when FULLIMAGE is Long clicked
}
if
(type.equals("FULLPROFILE")) {
// perfrom task when FULLPROFILE is Long clicked
}
}
});
Comments
Post a Comment