Question

J'ai créé une liste extensible dans mon application Android en utilisant le type SimpleExpandableListAdapter. Mais je suis à une perte complète de la façon dont je perçois des événements lorsque l'une des entrées de l'enfant a été sélectionné / cliquez dessus.

J'ai essayé tous les habituels OnClickListener / OnChildClickListener etc, mais ne peut pas sembler trouver (par l'expérimentation, ou une demi-heure googler) ce que les routines de gestionnaire correctes sont les suivantes.

Toute aide greatfully apprécié.

Était-ce utile?

La solution

Il devrait être:

list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
    public void onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        Object o = (Object)adapter.getChild(groupPosition, childPosition);
        // perform work on child object here
    }
}  

Bien, on dirait que vous avez essayé cette ... ExpandableListView. OnChildClickListener dit qu'il est, en fait, la façon de le faire.

En outre, vous avez défini les méthodes allItemsAreEnabled () et / ou isEnabled () pour votre ListAdapter? Vous ne devriez pas avoir, mais peut-être qu'ils sont actuellement définis et le retour des mauvaises valeurs?

Autres conseils

Aussi ...

Si vous arrive d'utiliser une classe qui étend BaseExpandableListAdapter alors leur est une méthode par défaut mis en œuvre, vous devrez régler le booléen de retour pour.

    @Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return true;
}

Par défaut, cette méthode est soit faux, échange true (si tel est le cas) et votre OnChildClickListener devrait commencer à résoudre correctement.

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