2017-09-19 3 views
0

Je tente d'utiliser ExpandableListView sur mon application suivant le tutoriel à:ExpandableListView avec plusieurs images et du texte en-tête

https://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

Mais, dans mon cas, ma tête sur chaque ligne aurait 2 textViews et 2 imageviews, donc, en regardant le ExpandableListAdapter class utilisé dans le tutoriel, il y a cette méthode:

@Override 
    public Object getGroup(int groupPosition) { 
     return this._listDataHeader.get(groupPosition); 
    } 

et cette méthode est appelée dans getGroupView méthode comme ceci:

@Override 
    public View getGroupView(int groupPosition, boolean isExpanded, 
      View convertView, ViewGroup parent) { 
     String headerTitle = (String) getGroup(groupPosition); 
     // rest of the code 

Dans l'exemple, il n'y a qu'un seul TextView en-tête, mais dans mon cas je 2 TextViews et 2 ImageViews, donc dans cette ligne:

String headerTitle = (String) getGroup(groupPosition); 

Comment puis-je savoir quel texte est qui ?, et la même chose pour les images, comment faire la différence entre une image ou l'autre?

+0

une approche (peut-être erronée, et non implémentée, juste une idée), créer un modèle de classe 'MyOwnHeader' pour la ligne d'en-tête, et rendre' getGroup' retourner 'MyOwnHeader' pour la position donnée ??? .... – codeKiller

Répondre

1

Vous devez créer une classe POJO et créer ArrayList de cette classe pojo. Quelque chose comme ça

public class HeaderData { 

    String title; 
    String strImageURL; 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getStrImageURL() { 
     return strImageURL; 
    } 

    public void setStrImageURL(String strImageURL) { 
     this.strImageURL = strImageURL; 
    } 
} 

maintenant créer une liste comme ça private List<HeaderData> _listDataHeader; Alors maintenant, il vous suffit de définir à la fois le titre et l'URL image et vous pouvez facilement obtenir en-tête de liaison.

+0

oui, merci !, je pense que ma première pensée était juste, je pense que je me suis répondu avec mon premier commentaire sur ma question, mais encore merci! – codeKiller

+0

Bon pote. Codage heureux :) @codeKiller – Kuls