Android 从导航列表更改代码中的ActionBar背景色

Android 从导航列表更改代码中的ActionBar背景色,android,android-actionbar,Android,Android Actionbar,我想在用户在导航列表中选择选项时更改操作栏背景的颜色 目前,我的代码如下所示: @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { ColorDrawable colorDrawable = new ColorDrawable(); ActionBar actionBar = getActionBar(); if(itemPos

我想在用户在导航列表中选择选项时更改操作栏背景的颜色

目前,我的代码如下所示:

@Override
    public boolean onNavigationItemSelected(int itemPosition, long itemId) {
        ColorDrawable colorDrawable = new ColorDrawable();
        ActionBar actionBar = getActionBar();
        if(itemPosition == 0)
        {
            colorDrawable.setColor(0xffFEBB31);
            actionBar.setBackgroundDrawable(colorDrawable);
            return true;
        }
        if(itemPosition == 1)
        {
            colorDrawable.setColor(0xff9ACC00);
            actionBar.setBackgroundDrawable(colorDrawable);
            return true;
        }
        return false;
    }
但是,当我第一次在导航列表中选择itemPosition 1时,它会将ActionBar颜色更改为白色


第二次单击导航列表中的itemPosition 1时,我没有问题


有人能告诉我为什么会这样,以及我如何解决这个问题吗?谢谢你的帮助

尝试使用以下代码:

ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffFEBB31"));
actionBar.setBackgroundDrawable(colorDrawable); 
试试这个:

myActivity.invalidateOptionsMenu();

我也有同样的问题

适用于VisualStudio等中的Xamarin用户

请在活动类中的SetContentView(Resource.Layou…)之后粘贴此内容

//本机设置ActionBar(工具栏)背景色
var actionBar=this.actionBar;
actionBar.SetBackgroundDrawable(新的彩色Drawable(Color.Black));

您可以根据需要对actionBar变量进行更改


谢谢,希望这会有所帮助。

这与最初的海报基本相同,只是选择颜色的方式略有不同。这并不能解决问题。我以前用过这个方法,但效果很好。将它改为使用泰金提到的十六进制方法,正好符合问题的说明。也许有人可以提供关于为什么Tykin的方法在这种情况下不起作用的一些见解。这是有效的。我刚刚将0x改为#,它工作得很好,知道为什么吗?@JMint文档声明“支持的格式是:#RRGGBB#AARRGGBB‘红色’、‘蓝色’…”0x是您在寻找
int
作为参数时会使用的格式(例如使用方法
公共静态int-rgb(int-red,int-green,int-blue)
)。查看更多信息。您是否解决过此问题?