Je travaille sur un type d'application en ligne, et j'ai frappé une bosse: j'ai été chargé d'ajouter un système de favoris, mais je ne peux pas comprendre comment activer la pression d'un bouton qui fait partie de l'élément Recyclerview pour l'ajouter aux favoris.
(Dans ce cas, le cœur, qui est censé se tourner vers un coeur complet quand il clique)
P>
3 Réponses :
Ajouter une valeur booléenne pour le favori de votre liste. Initialement, gardez-le faux. Vous devez avoir deux tiroirs, un pour l'état sélectionné et un autre pour l'état non sélectionné.
Dans votre titulaire de l'ONBindview, fixez-le à l'heure d'exécution sur la base de la condition ci-dessus. P>
holder.ivHeart.setOnClickListener(v -> {
if(list.isfav) {
list[adapterPosition].isfav = false;
}else{
list[adapterPosition].isfav = true;
}
notifyItemChanged(adapterPosition);
});
Dans votre adaptateur RECYCLERVIEW Le code sera comme celui-ci P> @Override
public void onBindViewHolder(ViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
holder.your_like_imageview.setOnClickListener{
holder.your_like_imageview.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.something_else));
};
}
Je suppose que vous utilisez une vision de l'image pour le cœur. Ce que vous pouvez faire est de définir un auditeur d'un clic sur cette vue ImageView et processus cliquez sur. P>
Un moyen idéal de le faire serait d'utiliser une interface pour gérer les événements de clic que vous passez à l'adaptateur. P>
Cependant, vous pouvez faire quelque chose comme celui-ci dans la méthode Onbindviewholder forte>: P>
La méthode imageview.setonclicklistener {
// Selon votre logique, changez la teinte pour l'icône ou l'étanchéité
OnClick (Data [Position], AddTowishList)
notifydatastetchangeed ()
} code> p>
amusant onclick (données: données, addTowishlist: boolean) {
// Vous pouvez effectuer l'addition / suppression de la liste de souhaits ici
} code> p>