Question

J'ai créé une activité, qui a une vue de liste extensible de la catégorie, et certaines d'entre elles comme sous-catégorie. Ils ont tous besoin d'être vérifiables. J'ai utilisé pour la sous-catégorie, un TreedTextView. Pour la catégorie, j'ai utilisé un TextView et une case à cocher, car lorsque nous cliquons sur le nom de la catégorie, nous devons l'étendre (c'est une vue de liste extensible après tout!). Pour la sélection, le ListView est sur "Mode multiple de choix". L'adaptateur en tant que liste des éléments cochés, et dans le GetChild / GetGroup View (), j'ai défini la case à cocher (ou le cocherdeTTexTView) à l'état donné par le SparseboolEanArray (de la ListView). Pour chaque case que je fais:

holder.checkbox.setOnCheckedChangeListener(new checkListener(groupPosition));

Donc, lorsque je coche une case, je sais de quelle position il se trouve dans la liste.

Mais j'ai beaucoup de problèmes avec ces implémentations (la position donnée n'est pas bonne, etc.). J'utilise la méthode de la vue de liste extensible pour obtenir la FlatlistPosition, mais je soupçonne que la vue de liste extensible n'est pas vraiment compatible avec le ChoiceMode ou la sélection ...

Est-ce correct ? Quelqu'un a-t-il déjà eu du mal à faire fonctionner un projet similaire?

Était-ce utile?

La solution

J'ai trouvé un article qui dit que les deux voies sont incompatibles, mais je ne me souviens pas où.

Je m'en tiens à la façon dont j'ai trouvé, en associant un tableau booléen pour les groupes, et un tableau booléen bidimensionnel pour les enfants, et chaque clic sur un groupe ou un enfant changera l'associé booléen au poste.

C'est un peu lourd mais ça marche et nous pouvons faire tout ce que nous voulons.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top