Mam stworzony ExpandableListView w którym wyświetlam kategorie i podkategorie. Po kliknięciu na którąś z podkategorii zaznaczam ją w ten sposób:

         elv_CategoryList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
            @Override
            public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
                String selected = (String)cla.getChild(groupPosition,childPosition);
                int position = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
                Log.e("selected", selected);
                elv_CategoryList.setSelectedChild(groupPosition,childPosition,true);
                boolean select = !elv_CategoryList.isItemChecked(position);
                elv_CategoryList.setItemChecked(position, select);
                cla.notifyDataSetChanged();
                return true;
            }
        });

Podkategoria jest zaznaczona dobrze dopóki nie zacznie się zwijać lub rozwijać głównych kategorii. Podam przykład żeby było łatwiej zrozumieć:

  1. Kat1
    1. podkat1
    2. podkat2
    3. podkat3
  2. Kat2
    1. podkat1

Zaznaczam podkat1 z Kat2 (Kat1 jest zwinięta). Po rozwinięciu Kat1 mam zaznaczony element podkat2 z Kat1.
Znacie jakiś prosty sposób żeby to rozwiązać?