从java更改应用程序的背景时,单击菜单时不会';I don’我穿的颜色不对

从java更改应用程序的背景时,单击菜单时不会';I don’我穿的颜色不对,java,android,xml,Java,Android,Xml,我试图更改背景应用程序的颜色,当我单击菜单时,例如更改背景黑色。 它第一次变为透明的颜色,像灰色,而不是蓝色 如果颜色是红色,我想用红色和其他颜色。 这是我的密码 mPopupMenu = new PopupMenu(this, settings); MenuInflater menuInflater = mPopupMenu.getMenuInflater(); menuInflater.inflate(R.menu.main_settings, mPopup

我试图更改背景应用程序的颜色,当我单击菜单时,例如更改背景黑色。 它第一次变为透明的颜色,像灰色,而不是蓝色

如果颜色是红色,我想用红色和其他颜色。 这是我的密码

 mPopupMenu = new PopupMenu(this, settings);
        MenuInflater menuInflater = mPopupMenu.getMenuInflater();
        menuInflater.inflate(R.menu.main_settings, mPopupMenu.getMenu());
        settings.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mPopupMenu.show();
                mPopupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        int id = item.getItemId();
                        if(id == R.id.menu_back_white) {
                            setActivityBackgroundColor(R.color.white);
                        } else if (id == R.id.menu_back_black) {
                            setActivityBackgroundColor(R.color.material_grey_900);
                        }
                        return false;
                    }
                });

            }
        });

 public void setActivityBackgroundColor(int color) {
        View view = this.getWindow().getDecorView();
        view.setBackgroundColor(color);
    }
颜色

<color name="material_grey_900">#ff212121</color>
<color name="white">#FFFFFF</color>
#ff212121
#FFFFFF
风格

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimaryDark">@color/blue_900</item>
        <item name="colorPrimary">@color/blue_300</item>
        <item name="colorAccent">@color/blue_300</item>
        <item name="colorControlNormal">@color/white</item>
    </style>

@颜色/蓝色
@颜色/蓝色\u 300
@颜色/蓝色\u 300
@颜色/白色

视图。setBackgroundColor
需要一个颜色值,但您给它一个资源id

如中所述,您必须使用例如(不推荐的变体)对其进行转换


(由于支持库23)

视图。setBackgroundColor
需要一个颜色值,但您给它一个资源id

如中所述,您必须使用例如(不推荐的变体)对其进行转换


(自支持库23起)

我添加了此代码getResources,它正在工作,但您知道如何更改textview和imagebutton的颜色吗?@Spritzig我还没有尝试过此方法,但对于
textview
它应该以相同的方式工作。
按钮可能需要可绘制的状态列表。有关详细信息,请参阅文档。我已修复了正在使用textview尝试的图像按钮。我已添加了此代码getResources,它正在工作,但您知道如何更改textview和imagebutton的颜色吗?@Spritzig我尚未尝试此操作,但对于
textview
,它应该以相同的方式工作。
按钮可能需要可绘制的状态列表。有关详细信息,请参阅文档。我已修复了正在使用textview尝试的图像按钮
getResources().getColor(color);
ContextCompat.getColor(context, R.color.your_color);