0

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

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

setTheme(android.R.style.Theme_Black);

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

我该怎么做才能将所有组件的主题更改为黑色,包括操作栏和片段?

4

3 回答 3

0

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

于 2013-02-19T22:24:09.343 回答
0

对于全局运行时更改,可以扩展Application并设置主题(可能在.onCreate()setTheme()ContextWrapper

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

<application
        android:name="com.yourpackage.ApplicationClass" >
</application>

但是,由于通常不赞成扩展应用程序,我宁愿根据每个基础设置主题,因为活动比对象Activity更频繁地被销毁和重新创建。Application也许制作一个返回当前主题的静态方法SharedPreferences

于 2013-02-19T22:24:14.767 回答
0

我建议阅读开发者文档http://developer.android.com/guide/topics/ui/themes.html的样式和主题部分

您可以使用以下内容从清单中进行大量主题化:

<activity android:theme="@style/android:Theme.Dark">
于 2013-02-19T22:27:18.443 回答