2012-01-08 14 views
12

Estoy usando un ExpandableListView y estoy intentando sin éxito mover una imagen al expandir un grupo (la imagen es parte de la vista de grupo).Obtener la vista de grupo expandido de una ExpandableListView usando onGroupExpand

Aquí está mi código:

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(); 
    } 
}); 

Básicamente mi problema es: ¿cómo puedo acceder a la vista de grupo ampliado, cuando la única variable que puede utilizar es groupPosition?

No se aceptará ninguna respuesta tipo you-should-create-a-custom-adapter. Ya lo intenté y no funciona para mi problema. Lo que necesito es escuchar el evento onGroupExpand.

+0

Realmente, no lo hacen cómo hacerlo. Supongo que la función que debería usar es 'getGroupView (int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)' pero lo que pasa es que solo tengo 'groupPosition'. Supongo que 'isExpanded' debe establecerse en true, pero ¿qué pasa con' convertView' y 'parent' ??? – thomaus

+0

tiene alguna solución? –

+0

Marque esta respuesta. Funciona conmigo (http://stackoverflow.com/a/22912225/5621162) –

Respuesta

11

Lo que eventualmente hice es usar el boolean isExpanded que obtienes gratis en getGroupView cuando haces un adaptador personalizado. Pude hacer que las cosas funcionaran de la manera que quería con eso, en lugar de hacerlo en la actividad. Si guarda el contexto que obtiene en el constructor, puede usarlo para obtener recursos.

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

Eso es mucho más fácil que mi otra respuesta (que era un poco buggy de todos modos), así que olvídate de que uno :)

+3

Gracias. Ya probé esta solución hace algún tiempo y tiene errores + no tiene sentido cambiar la vista de grupo en esta clase. Debería estar dentro del evento onGroupExpand. – thomaus

Cuestiones relacionadas