从 Fragment 更改 ActionBar 中一个特定 MenuItem 的 TextColor

Change TextColor of one specific MenuItem in ActionBar from Fragment

我无法从 Fragment 中更改 单个 菜单项(不在溢出菜单中,没有图标,只有文本)的文本颜色,而某些条件 x 是真的。我需要能够设置单个项目的样式并在运行时更改它,或者以编程方式更改它的颜色。

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_fragment_account_edit, menu);
    ((MultiPanelActivity) getActivity()).setToolbarBackButtonVisibility(!Globals.isTablet());
    if (mightBeChanges) {
        //TODO implement active state with {android.R.attr.textColorSecondary}
    } else {
        //TODO implement inactive state with {R.attr.colorContrastDark}
    } 
}

如果有人能提供一种方法,我会很高兴,我会开始工作。 提前致谢!

您可以在onPrepareOptionsMenu 中更改。看看能不能用

@Override
public boolean onPrepareOptionsMenu(final Menu aMenu) {
final MenuItem menuItem = this.menu.findItem(R.id.user_id_label);                               
final TextView textView = (TextView) menuItem.getActionView();
//set color with condition
return super.onPrepareOptionsMenu(aMenu);

}

首先,我必须按照 Geethakrishna Juluri 建议的方式更改 onPrepareOptionsMenu, 但我还必须添加一行,将 menuItems 标题放入 TextView。

@Override
    public boolean onPrepareOptionsMenu(final Menu aMenu) {
    final MenuItem menuItem = this.menu.findItem(R.id.user_id_label);                               
    final TextView textView = (TextView) menuItem.getActionView();
    textView.setTextColor(SOME_COLOR);
    textView.setText(menuItem.getTitle);
    return super.onPrepareOptionsMenu(aMenu);
}