0

ユーザーが特定のをロードするたびに、異なるテーマを設定しようとしています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.xmlandroid:themeでアクティビティに関連するものを宣言する必要があるため、そのようなテーマを単純に切り替えることはできません。

それを達成する方法はありますか?

4

1 に答える 1

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));
}
于 2013-09-07T00:12:33.270 に答える