2011-09-22 4 views
1

Je suis assez nouveau pour Android et je m'adapte lentement à la façon dont fonctionne Android.ExpandView ListView avec des objets personnalisés

Je suis en train de créer une application android qui utilise un service web .net pour extraire des données d'une base de données sql. J'ai deux méthodes qui retournent une réponse json avec une liste d'objets personnalisés. Je les analyse dans des tableaux d'objets correspondants sur le client android. Je cherche à mettre en œuvre une grille à plusieurs niveaux affichant des informations provenant de ces deux tableaux. Les éléments du premier tableau auront des éléments enfants contenus dans le second tableau. (Relation un à plusieurs)

Je suppose que je vais devoir créer deux adaptateurs de tableaux personnalisés? (ce qui me permettra d'avoir des dispositions personnalisées pour chaque niveau).

J'ai jeté un coup d'œil et j'ai eu du mal à trouver un exemple complet d'utilisation de la vue liste extensible. Quelle source de données cela va-t-il attendre? (une sorte de table de hachage j'imagine?)

Est-ce que mon approche ci-dessus semble raisonnable?

Tout conseil serait apprécié.

Merci,

+0

Vous demandez donc comment créer un ArrayAdapter personnalisé? –

Répondre

1

ExpandableListView prévoit une classe qui implémente l'interface ExpandableListAdapter comme source de données. Plusieurs implémentations sont incluses dans le SDK Android. Le SimpleExpandableListAdapter vous permettrait probablement d'être le plus rapide, il utilise les listes et les cartes pour ses données. Cela ne vous donnera pas la possibilité d'utiliser des mises en page différentes pour chaque groupe dans la liste mais cela vous permettra d'avoir une disposition différente pour les groupes et les enfants. Si SimpleExpandableListAdapter ne suffit pas alors vous allez vouloir écrire votre propre adaptateur. Je suggère d'étendre BaseExpandableAdapter (cet adaptateur implémente ExpandableListAdapter et prend soin de certains des aspects de l'entretien ménager pour vous, il laisse le reste de la mise en œuvre pour vous). Il existe un exemple simple qui montre comment faire cela dans les démos API ExpandableList1.java example.

Votre implémentation sera probablement plus complexe que l'exemple, mais elle devrait vous donner une idée de la façon de le faire.

Questions connexes