O estado marcado do MenuItem é, não mostrado corretamente por seu ícone

Eu tenho MenuItem definido desta maneira:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_starred"
        android:icon="@drawable/btn_star"
        android:title="@string/description_star"
        android:checkable="true"
        android:checked="true"
        android:orderInCategory="1"
        android:showAsAction="always" />
</menu>

andbtn_star.xml definiu desta maneira:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_checked="false" 
        android:drawable="@drawable/btn_star_off_normal" />
    <item 
        android:state_checked="true"
        android:drawable="@drawable/btn_star_on_normal" />
</selector>

Quando crio um menu de opções usando isso, no entanto, o ícone nunca é mostrado no estado verificado, mesmo se oMenuItem 'sisChecked() propriedade é verdadeira.

Estou usando o ActionBarSherlock control, no entanto, estou obtendo o mesmo resultado se simplesmente criar um menu de opções normais e chamarsetChecked(true). Ele ainda exibe obtn_star_off desenhável independentemente do estado verificado do ite

OonOptionsItemSelected() método @ está sendo chamado corretamente e posso alterar com êxito a propriedade marcada:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.isCheckable()) {
            item.setChecked(!item.isChecked());
        }
        return super.onOptionsItemSelected(item);
}

A definição de um ponto de interrupção aqui mostra a propriedade isChecked sendo alterada, mas o ícone em si não é atualizado para refletir o estado corret

Há algo que estou perdendo aqui? Estou fazendo isso incorretamente? Não consigo descobrir por que isso não funcionaria corretament

questionAnswers(3)

yourAnswerToTheQuestion