2012-01-08 16 views
12

Sto utilizzando un ExpandableListView e sto tentando invano di spostare un'immagine durante l'espansione di un gruppo (l'immagine fa parte della visualizzazione di gruppo).Ottieni una vista di gruppo espansa di ExpandableListView utilizzando onGroupExpand

Ecco il mio codice:

my_list_view.setOnGroupExpandListener(new OnGroupExpandListener() 
{ 
    @Override 
    public void onGroupExpand(int groupPosition) 
    { 
     Toast.makeText(getBaseContext(), "Group " + my_list_view.getGroupId(groupPosition), Toast.LENGTH_SHORT).show(); 
    } 
}); 

Fondamentalmente il mio problema è: come posso accedere alla vista Gruppo espansa, quando l'unica variabile che posso utilizzare è groupPosition?

Non è possibile accettare una risposta simile a un adattatore personalizzato. L'ho già provato e non funziona per il mio problema. Quello di cui ho bisogno è ascoltare l'evento onGroupExpand.

+0

Davvero, non come fare. Immagino che la funzione che dovrei usare sia 'getGroupView (int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)' ma il fatto è che ho solo il 'groupPosition'. Suppongo che 'isExpanded' debba essere impostato su true, ma che dire di' convertView' e 'parent' ??? – thomaus

+0

hai qualche soluzione? –

+0

Controlla questa risposta. Funziona con me (http://stackoverflow.com/a/22912225/5621162) –

risposta

11

Quello che alla fine ho utilizzato è lo boolean isExpanded che si ottiene gratuitamente in getGroupView quando si crea un adattatore personalizzato. Sono stato in grado di far funzionare le cose come volevo, invece di farlo nell'attività. Se si salva il contesto che si ottiene nel costruttore, è possibile utilizzarlo per ottenere risorse.

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 
    if (isExpanded) { 
    mContext.getResources().getDrawable(R.drawable.arrow) 
    doSomething(); 
    } 
    else { 
    doSomethingElse(); 
    } 
} 

Questo è molto più facile che la mia altra risposta (che era un po 'buggy in ogni caso), in modo da dimenticare che uno :)

+3

Grazie. Ho già provato questa soluzione qualche tempo fa ed è bacato + non ha senso cambiare la visualizzazione di gruppo in questa classe. Dovrebbe essere all'interno dell'evento onGroupExpand. – thomaus

Problemi correlati