J'ai recyclévoie en fragment. Lorsque je clique sur l'un des éléments de RECYCLERVIEW, Ä ± Vous voulez ouvrir un nouveau fragment. Je dois colonne dans mon adaptateur comme vous voyez la photo:
J'ai créé deux fragments également. (fragment_opel et fragment Chevrolet.) Lorsque l'utilisateur clique sur la ligne de Chevrolet, Fragment_chevrolet doit ouvrir. Je suis nouveau sur Android Studio.Je crée une méthode onclick dans mon adaptateur. Mais je ne peux pas remplir cette fonction. :) Pouvez-vous m'aider à ce sujet s'il vous plaît?
mon adaptateur: p> mon fragment: p>
4 Réponses :
Vous devez implémenter une interface OnClickListener pour votre adaptateur. Après cela, vous pouvez définir votre visibilité de RECYCLERVIEW disparue et FrameLayout visible. maintenant envoyer quel fragment que vous voulez dans FRAMELAYOUT. P>
ou p>
Implémentez l'adaptateur ONCLICKLISTENER Dans votre activité principale et indiquez quel fragment que vous souhaitez par sélectionnez RecyclERView Item Index P>
Merci pour votre aide. Pour le deuxième conseil, mon recyclageview est dans mon fragment. Donc, mon activité principale est vide. Devrais-je mettre en œuvre l'adaptateur onclicklistener sur mon MainActiviy, même si? ou utiliser en fragment?
Y compris certains code aidera le lecteur à comprendre correctement la solution.
@akiilhan Vous souhaitez modifier un fragment déjà passé dans Framelayout et qui est déjà défini en maadactivité, n'est-ce pas? Dans ce cas, vous devez implémenter l'adaptateur onclicklistener dans votre main-d'œuvre et remplacer le deuxième fragment par fragmenttransaction.
@Taseerahmad Désolé. C'est comme ça que je peux aider maintenant. Votre réponse a le plus fait.
@Hoseinhaqiqian j'ai créé deux lignes à l'aide de RecyclERView. Mais j'ai créé recyclerview dans mon fragment pas dans ma maigre. Mon but est quand je clique sur la ligne, un fragment différent devrait s'ouvrir. En fait, ı Maintenant, comment réussir le fragment de données en fragment à l'aide du bouton. Mais maintenant, il n'y a pas de bouton et j'utilise RecyclERView. Je suis tellement confus.
Cher @akiilhan, les interfaces peuvent être transmises à travers le fragment, puis à l'activité pour gérer différentes situations comme celle-ci.
Définir A Click Lister sur le porte-visuelle Code> Objet. P>
class MainActivity : AppCompatActivity(), ClickEventHandler {
override fun forwardClick(holder: AracMarkaViewHolder) {
//Launch a new fragment here.
}
}
Bonjour Taseer. Je vous remercie beaucoup. Je arrange mon code d'accord sur votre avis.mais, pour ce code: Valick Handler: Cliquez sur EventHandler = Contexte comme cliquez sur EventHandler, le contexte ne peut pas résoudre.
Vous devez passer contexte code> à la classe Adapter. Par exemple, Adaptateur de classe (contexte: contexte) code>. Ensuite, adaptateur (ceci) code>.
Désolé pour mes questions, mais je ne peux pas l'obtenir.
Vérifiez la modification, il vous suffit de passer context code> comme paramètre sur la classe de l'adaptateur exactement comme vous y passez une liste.
Bonjour Taseer, réellement merci beaucoup pour votre aide. Le problème est dans la classe AracMarkaadapter, ARACMarkaviewholder est URESOLVE.
Laissez-nous Continuez cette discussion en chat .
Il suffit d'implémenter le "Aller à Fragment" dans votre Onbindviewholder Code> Méthode comme celui-ci- override fun onBindViewHolder(holder: AracMarkaViewHolder, position: Int) {
holder.aracismi.text = araclar.get(position).aracAdi
holder.aracLogo.setImageResource(araclar.get(position).aracLogo)
holder.setOnClickListener {
if (position == 0) {
TODO("Go to first fragment")
} else {
TODO("Go to second fragment")
}
}
}
Bonjour, merci beaucoup. Maintenant, je peux obtenir des positions. Mais maintenant, aller au premier fragment, je ne peux pas appeler "soutienfragmentManager". Avez-vous maintenant comment faire ça?
Définition d'un auditeur dans Onbindviewholder CODE> est une mauvaise pratique que sur le défilement, il continue à définir des écouteurs sur chaque titulaire de vue. En outre, ce n'est pas un travail de classe d'adaptateur de gérer cette logique. Il devrait être propagé au niveau d'activité et y manipulé.
Juste au cas où cela aide tous ceux qui utilisent Kotlin et Android Studio 4.
J'utilise des adaptateurs sur un recyclage dans un fragment. Vous ne pouvez faire que le remplacement de la classe MainActivity.kt n'est pas la classe de l'adaptateur car ce n'est pas sur le fil principal si vous allez montrer une nouvelle vue de fragment. P>
Donc, mon constructeur dans mon adaptateur pour mon RecyclerView est remplacé par: p> alors j'ai une variable dans ma classe d'adaptateur: p> xxx pré> Puis j'ai ajouté le SETONClickListener dans ma classe d'adaptateur à la méthode OnCreateViewholder: p> override fun viewFollow(holder: View) {
}
Je ne vois pas un auditeur click n'importe où dans votre code. Avez-vous traversé cet article? . Il s'agit de définir un auditeur, vous pouvez faire ce que vous voulez.
Vous voulez le faire dans l'adaptateur ou dans l'activité?
@DanialClarc RecyclerView est défini mon fragment. Donc, je dois définir sur l'adaptateur.
@Taseerahmad j'ai défini cliquez sur écouteur sur mon adaptateur. Tu peux voir ça. Mais il est vide. Parce que je ne fais pas comment faire ça.Maybe je pourrais être totalement faux.