Flimm, потому что вы должны менять его на противоположное значение каждый раз, когда вы нажимаете флажок

я MenuItem определяется следующим образом:

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

а такжеbtn_star.xml&nbsp;определяется так:

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

Однако когда я создаю меню параметров с помощью этого, значок никогда не отображается в проверенном состоянии, даже еслиMenuItem«sisChecked()&nbsp;свойство это правда.

Я используюActionBarSherlock&nbsp;контроль, однако, я получаю тот же результат, если я просто создаю обычное меню параметров и вызываюsetChecked(true), Он по-прежнему отображаетbtn_star_off&nbsp;отрисовывается независимо от проверенного состояния элемента.

onOptionsItemSelected()&nbsp;метод вызывается правильно, и я могу успешно изменить проверенное свойство:

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

Установка точки останова показывает, что свойство isChecked изменяется, но сам значок не обновляется, чтобы отображать правильное состояние.

Есть что-то, чего я здесь не хватает? Я делаю это неправильно? Я не могу понять, почему это не будет работать правильно.