2017-10-06 15 views
2

ツールバーの[保存]項目がグレー表示されるのは、デザインモードでのみ発生しますが、実行時には発生しません。アンドロイド - メニュー項目が白く表示されないままになる

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

のようなアンドロイドdocs onPrepareOptionsMenuによると、直前に呼ばれていますメニューは開いていますが、メニューが常に開いている場合は呼び出されません。アンドロイド3.0以降で

ので、

あなたは常に開いているメニューを更新したいとき、あなたはinvalidateOptionsMenu()を呼び出す必要があります。メニュー項目を更新できるように、システムはonPrepareOptionsMenu()を呼び出します。

関連する問題