Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何动态设置工具栏的颜色_Android_Android Toolbar - Fatal编程技术网

Android 如何动态设置工具栏的颜色

Android 如何动态设置工具栏的颜色,android,android-toolbar,Android,Android Toolbar,我使用意图来获得颜色。我需要在工具栏中动态设置此颜色。互联网只找到了这样一个解决方案,但它不起作用 错误: java.lang.IllegalArgumentException:未知颜色 只需初始化工具栏对象并设置背景色 toolbar_gallery.setBackgroundColor(getResources().getColor(R.color.lightRed)); 发件人: 在API级别1中添加了ColorDrawable公共ColorDrawable int 颜色使用指定的颜色创

我使用意图来获得颜色。我需要在工具栏中动态设置此颜色。互联网只找到了这样一个解决方案,但它不起作用

错误:

java.lang.IllegalArgumentException:未知颜色


只需初始化工具栏对象并设置背景色

toolbar_gallery.setBackgroundColor(getResources().getColor(R.color.lightRed));
发件人:

在API级别1中添加了ColorDrawable公共ColorDrawable int 颜色使用指定的颜色创建新的可绘制颜色。 参数颜色int:要绘制的颜色

因此,您确实拥有颜色的值,您应该:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(randomAndroidColor));
但是randomAndroidColor的类型很长为什么?。 您应该将额外值extra_COLOR的类型更改为int, 在放入额外值的活动和获取额外值的活动中,都可以避免整数值溢出,并按如下方式获取:

private int randomAndroidColor = getIntent().getIntExtra(EXTRA_COLOR, 0);

您需要参考工具栏并使用toolbar.setbackgroundresources

getSupportActionBar可能会导致空指针引用,因此请使用:Objects.requireNonnullgetSupportActionBar.your-function。如果getSupportActionBar确实导致空指针异常,则错误不会是java.lang.IllegalArgumentException。这是Android Studio显示的,我对它不太熟悉!
private int randomAndroidColor = getIntent().getIntExtra(EXTRA_COLOR, 0);