Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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
Java 在不同的活动中更改操作栏的颜色_Java_Android_Xml_Android Studio - Fatal编程技术网

Java 在不同的活动中更改操作栏的颜色

Java 在不同的活动中更改操作栏的颜色,java,android,xml,android-studio,Java,Android,Xml,Android Studio,我想在每个活动中都有不同颜色的动作条,但在网上搜索后,我什么都找不到。我想知道这是否是可能的,如果是,如何实现?假设您需要一个带有setActionBarColor方法的父活动 public class ParentActivity extends ActionBarActivity/*or similar*/ { public void onCreate(Bundle state) { super.onCreate(state); } public

我想在每个活动中都有不同颜色的动作条,但在网上搜索后,我什么都找不到。我想知道这是否是可能的,如果是,如何实现?

假设您需要一个带有
setActionBarColor
方法的父活动

public class ParentActivity extends ActionBarActivity/*or similar*/ {

    public void onCreate(Bundle state) {
        super.onCreate(state);
    } 

    public void setActionBarColor(Color color) {
        getActionBar().setBackgroundDrawable(new ColorDrawable(color));
    }
}
并在此基础上扩展每个活动

public class ActivityA extends ParentActivity {

    @Override
    public void onCreate(Bundle state) {
        //call ParentActivity.onCreate(state)
        super.onCreate(state);
        setContentView(R.layout.activity_a);
        // some initialization code
        setActionBarColor(Color.rgb(248, 248, 248));
    }
}

public class ActivityB extends ParentActivity {
    @Override
    public void onCreate(Bundle state) {
        // some initialization code
        setActionBarColor(Color.rgb(248, 248, 248));
    }
}

检查此答案可能重复的活动似乎在启动时崩溃。我认为第二位代码进入实际活动是对的?@ZakWoolley这里有一个继承原则在起作用。当您启动每个活动时,它将调用父方法,如果您不使用与child相关的对象,则不会崩溃。@ZakWoolley yes。实际上这是一个你的活动,你在清单中声明并实现了。我想我不太明白你在说什么。我必须在创建时调用父活动“从主活动创建方法”吗?@Zak Woolley是的。你会打电话的。