Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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_Android Theme - Fatal编程技术网

Java 如何为一个活动设置多个主题

Java 如何为一个活动设置多个主题,java,android,android-theme,Java,Android,Android Theme,每次用户加载某个活动时,我都会尝试设置不同的主题 我创建了一个在3个主题之间切换的方法: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRandomTheme(); setContentView(R.layout.activity_main); } private void setRandomTheme() {

每次用户加载某个
活动时,我都会尝试设置不同的主题

我创建了一个在3个主题之间切换的方法:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRandomTheme();
    setContentView(R.layout.activity_main);
}

private void setRandomTheme() {
    int NUMBER_OF_THEMES = 3;
    int theme_ID = (int) (Math.random() * NUMBER_OF_THEMES);
    setTheme(Provider.getTheme(theme_ID));
}
但是我必须声明一个与AndroidManifest.xml中的活动相关的
android:theme
,因此我不能简单地像那样切换主题


有什么方法可以实现吗?

在super.onCreate之前设置主题

@Override
public void onCreate(Bundle savedInstanceState) {
    setRandomTheme();
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

private void setRandomTheme() {
    int NUMBER_OF_THEMES = 3;
    int theme_ID = (int) (Math.random() * NUMBER_OF_THEMES);
    setTheme(Provider.getTheme(theme_ID));
}

不,这不是问题所在