2017-10-06 25 views
2

在工具欄中保存項目只會在設計模式中發生,但從不在運行時發生。android - 菜單項保持白色,即使禁用

enter image description here

我使用這個代碼:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    if(count > 0) { 
     menuItemSave.setEnabled(true); 

    } else { 
     menuItemSave.setEnabled(false); 
    } 

    return true; 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 

    menuItemSave = menu.findItem(R.id.save); 

    return true; 
} 

它的啓用/禁用,但被禁用時,它只是真的不變成灰色。

回答

3

當啓用或禁用按鈕時,您可以使用自定義顏色更改顏色。 [根據您的要求更改顏色] 顏色/ custom_button_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="#FF0000" android:state_enabled="false" /> 
    <item android:color="#CCCCCC"/> 
</selector> 

在設置爲您所需要的按鈕項目menu.xml文件文件中像

android:textColor="@color/custom_button_color" 
0

根據Android的docs onPrepareOptionsMenu只是之前調用菜單被打開。但是如果菜單總是打開,它將不會被調用。

所以,

在Android 3.0及更高版本,您必須在您要更新,始終是打開的菜單調用invalidateOptionsMenu()。系統然後會調用onPrepareOptionsMenu(),以便更新菜單項。