l estado marcado de @ MenuItem no se muestra correctamente por su icono

Tengo MenuItem definido de esta manera:

<?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>

ybtn_star.xml definido de esta manera:

<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>

Cuando creo un menú de opciones usando esto, sin embargo, el icono nunca se muestra en su estado marcado, incluso si laMenuItem 'sisChecked() la propiedad es verdadera.

Estoy usando la ActionBarSherlock control, sin embargo, obtengo el mismo resultado si simplemente creo un menú de opciones normal y llamo asetChecked(true). Todavía muestra labtn_star_off dibujable independientemente del estado marcado del elemento.

LosonOptionsItemSelected()l método @ se llama correctamente y puedo cambiar con éxito la propiedad marcada:

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

Establecer un punto de interrupción aquí muestra que la propiedad isChecked se está modificando, pero el icono en sí no se actualiza para reflejar el estado correcto.

¿Hay algo que me falta aquí? ¿Estoy haciendo esto incorrectamente? No puedo entender por qué esto no funcionaría correctamente.

Respuestas a la pregunta(3)

Su respuesta a la pregunta