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

标签 android android-fragments styles menuitem textcolor

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

@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}
    } 
}

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

最佳答案

首先,我必须按照 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);
}

关于android - 从 Fragment 更改 ActionBar 中一个特定 MenuItem 的 TextColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164272/

相关文章:

java - 多线程 Android 应用程序中的组件应该如何交互?

java - 声明实现接口(interface)的 fragment

css - 我是否需要指定每个选择器来设置嵌套元素的样式?

javascript - 使用 JS 设置 CSS -moz-transition

android - 如何在 Android 上更改打开的 Spinner 的文本背景颜色

android - 函数运行时的进度条

android - 移动到 youtube 应用程序时,Youtube SDK 因 DeadObjectException 而崩溃

android - Flutter 在应用栏上定位超链接

java - 我有两个几乎相同的方法,如何重构它们?

java - fragment 中 getDefaultSharedPreferences 上的 NullPointerException