Comment écrire personnalisé ExpandableListAdapter
Je suis à la recherche d'écrire mon propre ExpandableListAdapter
qui fonctionne de la même façon ArrayAdapter
. Mon modèle de données est: est-ce
public class Group {
private String name;
private List<Child> children;
}
public class Child {
private String name;
}
Assez simple. Comment puis-je carte cette relation en une ExpandableListAdapter
mise en œuvre? J'ai un travail SimpleExpandableListAdapter
de travail en ce moment, mais j'ai besoin de plus de contrôle personnalisé sur les éléments (l'affichage des icônes, etc.). Que dois-je faire pour cela?
La chose principale est que j'ai besoin d'un add()
méthode pour être en mesure d'ajouter des groupes et d'invalider la liste lorsque les enfants sont ajoutés et supprimés de la carte. Je suis d'ailleurs surpris qu'il n'y a pas une mise en œuvre dans le SDK (même une abstraction) qui l'aide à accomplir cela.
OriginalL'auteur Naftuli Kay | 2011-03-04
Vous devez vous connecter pour publier un commentaire.
Voici une application que je viens de fouettée. Je n'ai aucune idée si ça fonctionne ou pas, mais semble "smart" pour moi 🙂 d'ailleurs, comment doit-on s'y prendre pour que le combiné id d'enfant ou le groupe combiné id, donc j'ai juste un peu improvisé.
Des commentaires ou critiques sont les bienvenus.
Tout simplement remarquable, merci!
Plutôt impressionnant pour la fouetter sur la place.
Si vous étendez BaseExpandableListAdapter au lieu de la mise en œuvre de ExpandableListAdapter alors vous ne devriez pas avoir besoin de mettre en œuvre les méthodes de combinaison des id
Android SDK simple et minimal built-dans la perspective de ressources pour la liste extensible adaptateur qui peut être passé à
AbstractExpandableListAdapter
constructeur sontandroid.R.layout.simple_expandable_list_item_1
pour les deuxgroupClosedView
etgroupExpandedView
, etandroid.R.layout.simple_list_item_1
pourchildView
OriginalL'auteur Naftuli Kay
J'ai été assez surpris que je n'ai pas trouver plus de documentation sur ce soit. Si vous en trouvez un, merci de le poster ici. Le meilleur exemple de mise en œuvre que j'ai trouvé était dans ApiDemos. Il y a un
ExpandableListActivity
qui implémente unBaseExpandableListAdapter
. La classe est appelée ExpandableList1.java.Vous aurez à créer votre propre
add()
méthode qui ajoute votreGroup
etChild
classes à la carte. Je ne pense pas que cela va être difficile au premier coup d'œil. En fait, vous pourriez être en mesure de créer les références à la classe des objets. Lorsque j'ai mis en place le mien, mon jeu de données était petite et n'a pas changé donc j'ai besoin de consulter mes array.xml fichier.OriginalL'auteur user432209
OriginalL'auteur Avi
De voir comment les vieux ce post et les réponses sont à, je pensais que je tiens à souligner il y a une très belle 3ème partie de la bibliothèque que sorta remplit en l'absence de cet écart. Alors que le posté solutions personnalisées sont bons, ils sont en manque encore un peu de choses et sont à la suite de la lourdeur de la conception d'obliger le programmeur à générer une structure de données de structures de données. Parfois,vous voulez juste d'organiser une Liste dans de jolies petites groupes, sans les tracas de le faire vous-même.
Il est appelé le RolodexArrayAdapter et peut être facilement utilisé dans la création d'un custom ExpandableListAdapters...sans avoir à vous soucier de tous les problèmes de gestion des données et de fonctionnalités. Il prend en charge les méthodes telles que l'ajout, addAll, supprimer, removeAll, retainAll, contient, tri etc. Il prend également en charge plus de fonctionnalités avancées comme ChoiceMode, le Filtrage, et l'auto développement des groupes.
Exemple:
OriginalL'auteur Jay Soyer