如何在Java文件中使用R.Color更改Android Studio中的操作栏setBackgrounddrawable颜色?

时间:2016-08-30 10:44:05

标签: java android colors background r.java-file

我想在Android studio中使用Java代码更改Action Bar的颜色,

我有颜色代码的color.xml文件

ContentControl

告诉我如何解决这个问题,因为我想使用R.color我不想使用color.parsecolor(“#hexcolor”);

3 个答案:

答案 0 :(得分:2)

这是一个空指针异常问题。我不确定你从哪里调用getSupportActionBar()(这将为我提供更多的上下文)但是你应该在调用时检查null。所以将代码更改为......

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
  actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.colorVelocity))); 
}

[编辑]

如果您不想使用已弃用的getResources()。getColor()方法,请改用它...

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
  actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.colorVelocity)));
}

答案 1 :(得分:1)

尝试使用这些线条来改变Actionbar的颜色。

 $scope.remove = function(item,quantity) { 
   //   console.log(item);
        if(quantity == 0){
            //$scope.orders = ordersService.getOrders();
            ordersService.getOrders().splice(this.$index, 1);  
        }
     // var index = $scope.orders.indexOf(item);
     //  ordersService.orders.splice(this.$index, 1);   
    }

答案 2 :(得分:0)

使用此代码,您可以使用Color.parseColor(),但可以使用资源中的颜色。

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
  actionBar.setBackgroundColor(Color.parseColor("#"+Integer.toHexString(context.getResources().getColor(R.color.colorVelocity))); 
}