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