我有一个扩展ActionBarActivity的活动(扩展为能够在我的listFragment中显示动作栏)。我试图在我的活动的OnCreate()方法中使用setTheme()这样设置主题:
setTheme(R.style.AppTheme);
setContentView(R.layout.holder);
但是,我收到此错误消息:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
实际上,我用作setTheme()的参数的样式已经有一个父作为Theme.AppCompat主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="background">@color/GhostWhite</item>
</style>
感谢任何答案。
答案 0 :(得分:0)
创建一个主题对象,并使用setTo(theme)直接应用,如下所示。
Theme theme;
theme.setTo(other theme which you want to apply);
答案 1 :(得分:0)
弄清楚我的问题:
我最初在清单中的应用程序标记中取出了主题属性。
为了使setTheme()正常工作,似乎需要在清单应用程序标记中设置应用程序范围的主题。然后,您可以在每个活动上使用setTheme()覆盖该应用程序范围的主题。