2012-08-09 43 views
2

在我的Android应用程序中,我可以更改主题,但要查看更改,我必须退出应用程序并再次打开它。android - 如何遍历所有活动?

这是我如何改变主题。

ThemeSetterActivity.setStyle(signup.this); 

发生在创建事件上。

但有一些像这样的代码(见下文),我可以运行,而且将改变主题的所有活动。

foreach (activity act in app) { 
    ThemeSetterActivity.setStyle(act.context); 
} 

感谢

回答

0

据我知道你不能这样做的。

我要做的就是让每个活动跟踪它当前正在使用什么样的主题。 然后在简历上的每个活动中,检查当前主题是否仍然应该是,如果不重新启动活动。

获得该应用程序的一个简单方法就是让您的基本活动类实现该行为,然后让所有活动扩展该行为。

0

应用主题到活动或应用

设定主题为应用程序的所有活动,打开AndroidManifest.xml文件并编辑标签包括了Android :带有样式名称的主题属性。例如:

<application android:theme="@style/CustomTheme"> 

如果你想一个主题应用到您的应用程序只是一个活动,然后将机器人添加:主题属性标签来代替。

就像Android提供其他内置资源一样,您可以使用许多预定义的主题,以避免自己编写它们。例如,你可以使用对话的主题,让你的活动看起来像一个对话框:

<activity android:theme="@android:style/Theme.Dialog"> 
+0

所有这些都是真实的,但这不是他所要求的。他特别要求如何动态改变主题,而不是首先如何设置主题。 – 2012-08-09 02:25:23

0

使用静态字段并存储您的主题ID; 和onCreate方法使用:

yourActivityObj.setTheme(R.style.AppTheme); 

也许标识工作;