J'ai Configurez le recyccleview strong> p> s'il vous plaît Suggestion p> p> recyclerview code>, je veux ouvrir alertdialog code> lorsque l'élément de recyclerview code> est cliqué, j'essaie de suivre le concept de < un href = "https://stackoverflow.com/questions/45438215/androïd-alertdialog-on-RecyClerView-item-Click"> cette question basée sur Java mais cela n'a pas fonctionné pour moi
3 Réponses :
Vous avez oublié la création () espère qu'il aide p> p>
Tout d'abord, ne mettez jamais votre ONCLICK dans Onbindviewholder. Ce n'est pas une bonne pratique. Deuxièmement, si vous souhaitez effectuer n'importe quel événement de clic sur l'élément, vous pouvez opter pour une interface ou mettre votre élément Cliquez sur l'auditeur dans la classe Viewholder (classe interne) qui étend RecyclERView.Viewholder.
item.setOnClickListenr{
AlertDialog.Builder(this)
.setTitle("My Title")
.setMessage("My Message"))
.setPositiveButton("Yes") { dialog, which -> todoFunctiononpositiveclick() }
.setNegativeButton("No") { dialog, which -> dialog.dismiss() }
.show()
}
Merci pour votre suggestion J'ai essayé votre solution mais je ne fonctionne toujours pas, vérifiez la question mise à jour que je supprimez onclick dans Onbindviewholder et mais c'est la classe intérieure
Pouvez-vous expliquer mieux ou relier une référence expliquant la raison pour laquelle la raison pour laquelle n'est-elle pas une bonne pratique de la mettre dans OnBindviewholder? Je trouve beaucoup de références qui font ça et je le fais personnellement moi-même? Merci d'avance
@Shermano je n'ai aucune idée de cela aussi, j'ai besoin de savoir pourquoi n'est-elle pas une bonne pratique pour la mettre dans OnBindviewholder?
Je suis désolé @jimaleabdi, je demandais à @minichrip \
Ici github.com/googlesamples/android-sunflower/blob/master/appr/s rc / ... Quelque partie de l'échantillon Googel, et même dans leur tutoriel, ils ont mentionné l'exécution d'un clic auditeur sur la classe intérieure au lieu de l'onbind
@JIMALE Vérifiez cela aussi Stackoverflow.com/Questtions/33845846/...
Votre code fonctionne J'ai vérifié et reproduit le code de votre adaptateur et cela fonctionne, envoyez moi votre présentation XML et votre code d'inticitation que l'adaptateur p>
Vous ne pouvez pas envoyer ApplicationContext, vous devez envoyer le contexte de votre activité.
Correction de ce
VAL Adapter = OperatinderAdapter (Ceci, ArrayList CODE>) Vous ne pouvez pas créer de boîte de dialogue dans une classe d'application car, la boîte de dialogue doit être jointe à une fenêtre, une application n'est pas une classe de l'UI et n'a pas de fenêtre. , donc il ne peut pas montrer la boîte de dialogue. p>
blockQuote>
Merci je vais poster le code XML s'il vous plaît vérifier la question mise à jour
@JIMALEABDI Votre application est-elle crash lorsque vous cliquez sur?
Oui, il commence à écraser
@Jimaleabdi j'ai trouvé une solution. Vous ne pouvez pas envoyer ApplicationContext, vous devez envoyer le contexte de votre activité. Correction de ce Val Adapter = OperationAdapter (ceci, ArrayList) CODE> Vous ne pouvez pas créer de boîte de dialogue dans une classe d'application car, la boîte de dialogue doit être jointe à une fenêtre, une application n'est pas une classe de l'UI et n'a pas de fenêtre, il ne peut donc pas montrer la boîte de dialogue. B>
@Jimaleabdidi et sur Ne mettez jamais votre ONCLICK dans Onbindviewholder I>. Votre méthode appelée "Onbindviewholder" et il ne doit que lier votre député avec votre modèle (article) et rien de plus. Votre code nettoyeur de code et lisible, car vous gardez le premier Principal SRP (responsabilité unique principale). Notbad Exemple
@Jimaleabdiiez toujours un crash?
@Jimaleabdi c'est la même chose. Essayez de trouver votre journal sur votre exception et envoyez-moi
Merci cela fonctionne s'il vous plaît mettre à jour votre réponse pour aider l'autre à nouveau merci de m'aider