IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Modifier l'image d'un Header lors du click sur le HEader d'un ExpandableListView


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Février 2015
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 104
    Par défaut Modifier l'image d'un Header lors du click sur le HEader d'un ExpandableListView
    Bonjour à tous,

    voici mon problème :
    J'ai un ExpandableListView avec une partie Group et une partie Child.
    J'ai customisé le layout des deux parties notamment celle du Header (Group) dans laquelle j'y ai mis une imageView.
    Je souhaiterai lors du clic sur ce header, modifier l'image.

    J'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                        mLst_exp_repart.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
                            @Override
                            public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
                                ImageView deplier = (ImageView) findViewById(R.id.cbx);
     
                                    deplier.setBackgroundResource(R.drawable.icon_deplier);
                                    return false;
     
                            }
                        });
    MAis bien entendu, cela ne modifie que l'image du premier Group.

    Ma question :
    Comment exploiter LE groupPosition et ne modifier que l'image du bon header ?

    MErci d'avance pour votre retour

    Bomatch

  2. #2
    Membre confirmé
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Février 2015
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 104
    Par défaut
    Alors, voici ma solution, si elle peut aider une personne ça serait super :

    J'ai simplement modifié ceci (redéfinition de mon ImageView grace à la vue que reçoit le onGroupClick) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ImageView deplier = (ImageView) v.findViewById(R.id.cbx);
    //ImageView deplier = (ImageView) findViewById(R.id.cbx);
    deplier.setBackgroundResource(R.drawable.icon_deplier);
    Je vais pouvoir passer à la partie gestion de cette image en fonction des cas.

    Bon code à tous

  3. #3
    Membre confirmé
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Février 2015
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 104
    Par défaut
    Bonsoir à tous,

    juste pour préciser que j'ai finalement utilisé une méthode légèrement différente car la précédente bogguais un peu.
    En effet, lorsque j'avais une liste importante avec plusieurs header (Group) et que je cliquais sur ces derniers, parfois je n'avais pas le résultat escompté pour la gestion de l'image.

    Donc, j'ai appliqué cette méthode directement via l'adapter.
    On a ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @Override
        public View getGroupView(int groupPosition, boolean isExpanded,
                                 View convertView, ViewGroup parent) {
    Qu'est-ce que je vois ??? Le boolean is Expanded. Que j'utilise donc ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    final int sdk = android.os.Build.VERSION.SDK_INT;
                    if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
                        if(isExpanded) {
                            deplier.setBackgroundDrawable(_context.getResources().getDrawable(R.drawable.ico_plier_white));
                        }else deplier.setBackgroundDrawable(_context.getResources().getDrawable(R.drawable.icon_deplier_white));
                    } else {
                        if(isExpanded) {
                            deplier.setBackground(_context.getResources().getDrawable(R.drawable.ico_plier_white));
                        }else deplier.setBackground(_context.getResources().getDrawable(R.drawable.icon_deplier_white));
                    }
    Et ça marche hyper bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [NET4.0] Binding event lors du click sur une Image
    Par aram2 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 08/06/2010, 09h19
  2. Réponses: 3
    Dernier message: 03/06/2010, 16h32
  3. Blocage de l'EDT lors du click sur un bouton
    Par bassim dans le forum EDT/SwingWorker
    Réponses: 3
    Dernier message: 13/12/2006, 23h44
  4. Réponses: 4
    Dernier message: 04/07/2006, 14h07
  5. Réponses: 7
    Dernier message: 20/10/2005, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo