我正在开发一个Android应用程序。 我想添加一个功能,让用户在运行时更改应用程序的主题。
我尝试在主要活动中使用以下语句。
setTheme(android.R.style.Theme_Black);
但是,它只是将对话框更改为带有白色文本的黑色背景。
如何将所有组件的主题更改为黑色,包括操作栏和片段?
答案 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">