Destaque para o item selecionado na lista expansível

Eu tenho um layout onde eu tenho uma lista expansível em um fragmento à esquerda e um fragmento de detalhes à direita. Isso tudo funciona bem.

Agora eu gostaria de indicar qual item à esquerda está tendo os detalhes mostrados à direita e aqui estou tendo um problema.

Em uma exibição de lista normal, consegui isso definindo o modo de opção para a exibição de lista como único e, em seguida, usando um estado que pode ser desenhado com base no estado "ativado". Quando clico no item, o fundo é definido para a cor selecionada e fica assim até que eu selecione outro item na lista.

Eu tentei aplicar isso ao meu listview expansível e foi / é um fracasso sombrio. Não houve erros, mas o item selecionado não manteve seu estado de cor. Eu não tenho certeza se eu não estou definindo o modo de escolha corretamente para ele (eu tentei no arquivo de layout, bem como programaticamente, não parece fazer a diferença), ou apontando para a coisa errada (não sei como isso poderia ser, mas ...)

Qualquer ajuda / ponteiros apreciados (mesmo se estiver em uma direção completamente diferente).

Maior falha atual:

código de listview expansível

private void fillData(String group, String child) {
    ExpandableListView lv;
    mGroupsCursor = mDbHelper.fetchGroup(group);
    getActivity().startManagingCursor(mGroupsCursor);
    mGroupsCursor.moveToFirst();
    lv = (ExpandableListView) getActivity().findViewById(R.id.explist);
    lv.setChoiceMode(ExpandableListView.CHOICE_MODE_SINGLE);        

    mAdapter = new MyExpandableListAdapter(mGroupsCursor, getActivity(),
            R.layout.explistlayout,
            R.layout.explistlayout,
            new String[] { "_id" },
            new int[] { android.R.id.text1 },
            new String[] { child },
            new int[] { android.R.id.text1 });
    lv.setAdapter(mAdapter);
    registerForContextMenu(lv);

    lv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
        @Override 
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id)  
        { 
            mRowId  = id;
            EventDisplayFragment eventdisplay = new EventDisplayFragment();
            getFragmentManager().beginTransaction().replace(R.id.rightpane, eventdisplay).commit();
            return true; 
        } 
        }); 
}

public class MyExpandableListAdapter extends SimpleCursorTreeAdapter {

    public MyExpandableListAdapter(Cursor cursor, Context context,
            int groupLayout, int childLayout, String[] groupFrom,
            int[] groupTo, String[] childrenFrom, int[] childrenTo) {
        super(context, cursor, groupLayout, groupFrom, groupTo,
                childLayout, childrenFrom, childrenTo);
    }
    @Override
    protected Cursor getChildrenCursor(Cursor groupCursor) {
        Cursor childCursor = mDbHelper.fetchChildren(mGroup, groupCursor
                .getString(groupCursor
                        .getColumnIndex(AttendanceDB.EVENT_ROWID)));
        getActivity().startManagingCursor(childCursor);
        childCursor.moveToFirst();
        return childCursor;
    }
}

item_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
     android:state_pressed="true" 
     android:drawable="@color/green" />
    <item 
     android:state_selected="true" 
     android:drawable="@color/blue" />
    <item 
     android:state_focused="true" 
     android:drawable="@color/violet" />
    <item 
     android:state_activated="true" 
     android:drawable="@color/blue" />
</selector>