這是我的菜單佈局。如何動態更新MenuItem中的複選框?
注意的項目:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_best_stores"
android:title="@string/showStores"
android:onClick="showHideStores"
android:enabled="true"
android:checkable="true"
app:showAsAction="never"
/>
</menu>
這是的OnAction功能。
public void showHideStores(MenuItem m) {
m.setChecked(!m.isChecked());
SHOWING_STORES = !SHOWING_STORES;
showStoresProcess(SHOWING_STORES);
refreshData();
invalidateOptionsMenu();
}
每當我運行我的程序時,函數的工作原理是因爲應該發生的事情發生。除了ItemMenu本身發生變化的部分......它只是沒有做任何事情,複選框保持未選中狀態......我也試過setTitle,也沒有改變任何東西。
因此,第1行不會產生任何變化。
這是怎麼回事?
這是我吹菜單
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_list_actions, menu);
super.onCreateOptionsMenu(menu);
this.menu = menu;
refreshData();
return true;
}
通知功能是如何工作的,因爲屏幕變化的代碼,但它本身並沒有得到菜單「勾掉」或「選中」。
你能應的代碼你在哪裏充氣菜單嗎? –
使用onOptionsItemSelected代替,因爲它在這裏聲明http://developer.android.com/guide/topics/ui/menus.html#checkable –
檢查m.isChecked()是否返回兩種狀態。 –