Expand group row programmatically in expandable list

android

Solution

In adapter

private OnItemSelectedListener onItemSelectedCallback;

public interface OnItemsSelectedListener {
    public void onImageSelected(int groupPos);
}

public YourAdapter(Context context) {
    try {
        this.onItemSelectedCallback = (OnItemSelectedListener ) context;
    }
    catch (ClassCastException e) {
        throw new ClassCastException(context.toString() + " must implement OnItemSelectedListener ");
    }
}

Add this in getView()

ImageView imageView = new ImageView();
imageView.setTag(R.id.tagGroupPosition, groupPosition);
imageView.setOnClickListener(onClickListener);

Add this in OnClickListener

OnClickListener onClickListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        int groupPos = ((ImageView) v).getTagId(R.id.tagGroupPosition);
        onItemSelectedCallback.onImageSelected(groupPos);
    }
}

Then in activity you have to implements YourAdapter.OnItemsSelectedListener the Override onImageSelected

@Override
public void onImageSelected(int groupPos){
    if(expandableList.isGroupExpanded(groupPos)){
        expandableList.collapseGroup(groupPos);
    }else{
        expandableList.expandGroup(groupPos);
    }
}

Problem

I am using expandablelistview. Is there anyway I can expand the group row when an image inside is clicked? I know that to have the image respond to click, I have to set its focus. Now, once this image responds to click (inside my custome adapter), how can I programmatically expand/collapse that specific group row it belongs to? Thank you

Original source