-1
votes

Comment ajouter un onitemclickListener () dans la grille Vue implémentées à l'aide de l'adaptateur personnalisé (Ici, j'ai nommé CatégorieAdapter)

MainActivity.kt Fichier - C'est l'activité principale.

Comment ajouter un onitemClickListener () code> dans GridView implémentée à l'aide d'un adaptateur personnalisé (Ici, j'ai nommé CatégorieAdapter code> )? J'aime l'ajouter à définir cliquez sur l'auditeur dans l'image. P>

MainAlacivity.kt strong> p>


    package com.hari.rideit.Adapters

    import android.content.Context
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    import android.widget.BaseAdapter
    import android.widget.ImageView
    import android.widget.TextView
    import com.hari.rideit.R
    import com.hari.rideit.model.Category

    class CategoryAdapter(context:Context,categories:List<Category>):BaseAdapter(){
    val context= context
    val categories= categories
    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        val categoryView: View
        categoryView = LayoutInflater.from(context).inflate(R.layout.category_layout, null)
        val categoryImage: ImageView = categoryView.findViewById(R.id.categoryImage)
        val categoryname: TextView = categoryView.findViewById(R.id.categoryText)
        val category = categories[position]
        categoryname.text = category.title
        val resourceId =
            context.resources.getIdentifier(category.image, "drawable", context.packageName)
        categoryImage.setImageResource(resourceId)
        return categoryView
    }

    override fun getItem(position: Int): Any {
        return categories[position]
    }

    override fun getItemId(position: Int): Long {
        return 0
    }

    override fun getCount(): Int {
       return categories.count()
    }

}


1 commentaires

Bonjour Hari, bienvenue à la Stackoverflow Communicy. Assurez-vous de lire le Stackoverflow.com/help/how-to-ask . En outre, lorsque vous souhaitez ajouter du contenu à propos de votre question, Edit Votre question plutôt que de poster une réponse dans un forum comme style.


3 Réponses :


0
votes

Vous pouvez ajouter OnClickListener à chaque élément de la grille. Avant de retourner la catégorieview, définissez OnClickListener sur elle.

class MainActivity : AppCompatActivity() , NavigationView.OnNavigationItemSelectedListener, CategoryAdapter .OnItemClickListener {

     //rest of the code

   override fun onClick(position:Int){
       // perform the code.
   }


}


5 commentaires

Mais de cette manière, comment puis-je savoir quelle image est cliquée?


Sur quelle ligne il montre l'erreur? L'écoute.onClick doit être identique que défini dans l'interface.


Que passer quand j'initialise l'adaptateur? Adaptateur = CatégorieAdapter (Ceci, DataService.Catégories)


Passez ceci à l'adaptateur: adaptateur = CatégorieAdapter (Ceci, DataService.Catégories, this) .


Avez-vous ajouté la catégorieAdapter .onitemClickListener à votre MainActivity.kt Like Classe MainActivity: AppCompatiactivité (), NavigationView.onnAvateSitemselectedlistener, CatégorieAndapter .nonitemClickListener {



0
votes

Vous devez modifier votre constructeur d'adaptateur sur: xxx pré>

et appelez-le de votre activité comme ceci: p> xxx pré>

à l'intérieur de votre adaptateur , Ajoutez ce code après "CatégorieImage.setimageresource (WeatherID)": P>

categoryImage.setOnClickListener {
            listener.onClick(categoryImage)
        }


4 commentaires

Toast.maketext (contexte, "cliquez sur", toast.longueur_long) .Show () le contexte montre le rouge est-il égal à ceci


Et comment savoir quelle image est cliquée?


Vous devez utiliser le contexte de votre activité: Toast.Maketext (this @ MainAlactivité, "Cliquez sur" Toast.Length_long) .Show ()


Pour connaître la position de votre vue, vous pouvez créer un auditeur personnalisé comme cette interface CustomClickListener {Fun Onclick (position: int)}



0
votes

converview.setonclicklistener () {}


0 commentaires