/ / Definir o tema para um aplicativo Android dinamicamente com setTheme () - android, android-fragments

Configurando o tema para um aplicativo android dinamicamente com setTheme () - android, android-fragments

Eu tenho uma atividade que estende ActionBarActivity(estendido para poder exibir a barra de ação no meu listFragment). Eu estou tentando definir o tema usando setTheme () assim dentro do método OnCreate () da minha atividade:

setTheme(R.style.AppTheme);
setContentView(R.layout.holder);

No entanto, recebo esta mensagem de erro:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

Quando, na verdade, o estilo que estou usando como argumento para setTheme () já tem um pai como tema Theme.AppCompat:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="background">@color/GhostWhite</item>
</style>

Qualquer resposta é apreciada.

Respostas:

0 para resposta № 1

Faça um objeto de tema e aplique diretamente usando setTo (theme) como a seguir.

Theme theme;
theme.setTo(other theme which you want to apply);

0 para resposta № 2

Descobri meu problema:

Eu estava inicialmente tirando o atributo de tema na tag do aplicativo no manifesto.

Definir um tema amplo de aplicativo em seuA tag de aplicativo de manifesto parece ser necessária para que o setTheme () funcione corretamente. Em seguida, você pode substituir o tema amplo do aplicativo por setTheme () em cada atividade.