如何在Android中更改Application的主题?

时间:2013-02-19 22:16:52

标签: android android-xml android-theme

我正在开发一个Android应用程序。 我想添加一个功能,让用户在运行时更改应用程序的主题。

我尝试在主要活动中使用以下语句。

setTheme(android.R.style.Theme_Black);

但是,它只是将对话框更改为带有白色文本的黑色背景。

如何将所有组件的主题更改为黑色,包括操作栏和片段?

3 个答案:

答案 0 :(得分:0)

使用Theme_Holo代替Theme_Black,请注意,如果您希望所有内容都变黑,则需要创建自己的主题。

答案 1 :(得分:0)

对于全局运行时更改,可行的方法是扩展Application并设置主题(可能在onCreate()中,因为此类还有一个setTheme()方法,因为它扩展了{{3}} {1}}。

确保在清单中声明您的Application类:

ContextWrapper

但是,由于扩展应用程序通常不受欢迎,因此我宁愿按<application android:name="com.yourpackage.ApplicationClass" > </application> 基础设置主题,因为活动被销毁并以Activity对象更频繁地重新创建。也许制作一个从Application返回当前主题的静态方法。

答案 2 :(得分:0)

我建议您阅读开发人员文档http://developer.android.com/guide/topics/ui/themes.html

的样式和主题部分

你可以使用以下内容从你的清单中做很多主题:

<activity android:theme="@style/android:Theme.Dark">