如何为Activity设置多个主题

时间:2013-09-06 18:46:18

标签: java android android-theme

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

我创建了一个在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 中的Activity相关的android:theme,所以我不能简单地切换这样的主题。

有没有办法实现它?

1 个答案:

答案 0 :(得分:0)

在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));
}