Чтобы установить тему динамически во время выполнения, вызовите setTheme () в методе onCreate () вашей активности перед вызовом setContentView (). Чтобы сменить тему, вам просто нужно перезапустить свою деятельность.
Вот хороший учебник о том, как динамически применять темы.
и это тоже.