2010-08-14 7 views
8

Je viens d'essayer l'échantillon actuel de Google pour ExpandableListiew:échantillon ExpandableListView de Google

Cet exemple semble très simple et facile à utiliser, mais ce que je voudrais faire est de dire que l'un de la catégorie n'a pas d'enfant. J'ai enlevé tous les enfants mais le problème est que la flèche apparaît toujours sur cette ligne actuelle. Par exemple, imaginez que je supprime tous les "Cat Names", la flèche est toujours là et quand je clique dessus, la flèche change juste. Comment supprimer cette flèche et lancer une activité à la place?

Répondre

12

Si vous parlez de la flèche qui est utilisée pour réduire/agrandir la liste, vous pouvez le supprimer en utilisant setGroupIndicator()

dans l'activité que vous pouvez appeler

getExpandableListView().setGroupIndicator(null); 

qui sera enlever la flèche de façon permanente cependant. Si vous souhaitez le masquer uniquement si la liste est vide, vous pouvez le faire via des attributs XML comme this

Pour lancer une activité lorsque la liste est développée/réduite, vous pouvez remplacer onGroupExpanded (ou réduit) dans votre implémentation ListAdapter et utilisé que pour lancer votre activité

2

En général, si vous souhaitez actualiser une zone spécifique de votre activité lorsque vous revenez d'une autre activité; vous devez écrire dans la méthode onResume().

Étapes: 1 - Dans l'activité que vous voulez qu'il soit rafraîchi, passer outre la méthode onResume():

@Override 
protected void onResume() { 
    super.onResume(); 
    // TODO: PUT YOUR REFRESH CODE IN HERE 
} 

2- Vous aurez besoin de rafraîchir votre adaptateur extensible.

Je vous suggère de prendre le même code que vous avez utilisé pour instancier votre liste extensible et le mettre à nouveau, comme suit:

SimpleExpandableListAdapter expandableListAdapter = 
    new SimpleExpandableListAdapter(
     this, 
     YourPrentsList, // List of your parent 
     R.layout.parents_layout, // Layout for the Parents 
     new String[] { "groupKey" }, // Key in the Group Data maps to display 
     new int[] { 1 },   
     childrenList, // List of the children 
     R.layout.childs_layout, // Layout of the children 
     new String[] { "keys"}, 
     new int[] { 1} 
    ); 
setListAdapter(expandableListAdapter); 

J'espère que cela résout votre problème ... Merci,

Mohamed .

+0

Votre réponse est malheureusement hors-sujet. Je demandais d'enlever la flèche quand un parent n'a pas d'enfant ... –

+1

@ Profete162, Il a été un moment depuis que j'ai répondu à cette question, Quand je lis la question et réponds maintenant je ne sais pas ce que je pensais ... désolé si j'ai spammé votre question l'homme. Avez-vous résolu le problème de toute façon? –

+0

Ne sois pas désolé, tu as essayé de m'aider! Malheureusement, cela a été un moment pour moi aussi! Comme je ne pouvais pas trouver une réponse, j'ai utilisé un Alertdialog et un ListView pour afficher l'enfant, s'il y en a. S'il n'y a pas d'enfant, je vais juste à l'activité suivante. –

Questions connexes