可绘制状态不会在操作栏上更新

时间:2017-12-20 03:13:38

标签: android

我有一个操作栏,其中包含一个项目shuffle_action

我在onOptionsItemSelected(MenuItem item)函数中使用过以下情况。

 switch (item.getItemId()){
    case R.id.action_shuffle:
                    if(MusicService.shuffle) {
                        item.setChecked(false);
                        Toast.makeText(this,String.valueOf(item.isChecked()),
                        Toast.LENGTH_SHORT).show();// returns false
                        musicService.clearShuffle();
                    }
                    else {
                        item.setChecked(true);
                        Toast.makeText(this,String.valueOf(item.isChecked()),
                        Toast.LENGTH_SHORT).show();// returns true
                    }
                    musicService.setShuffle();
                    break;
    }

现在这件事情完美无缺,因为我想让它发挥作用。

<item
        android:id="@+id/action_shuffle"
        android:icon="@drawable/shuffle_drawable"
        android:title="Shuffle"
        app:showAsAction="ifRoom"
        android:checkable="true"
        android:checked="false"
        />

shuffle_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
    android:drawable="@drawable/shuffle_pressed"/>
    <item
        android:state_checked="false"
        android:drawable="@drawable/ic_shuffle_black_18dp"/>
</selector>

问题在于,当州改变时,抽屉不会发生变化。为什么会发生这种情况?

0 个答案:

没有答案