在我的Android应用程序中,我可以更改主题,但要查看更改,我必须退出应用程序并再次打开它。
这就是我改变主题的方式。
ThemeSetterActivity.setStyle(signup.this);
发生在创建事件上。
但是我可以运行一些像这样(下面)的代码,并且会改变所有活动的主题。
foreach (activity act in app) {
ThemeSetterActivity.setStyle(act.context);
}
感谢
答案 0 :(得分:0)
将主题应用于活动或应用程序
要为应用程序的所有活动设置主题,请打开AndroidManifest.xml文件并编辑标记以包含带有样式名称的android:theme属性。例如:
<application android:theme="@style/CustomTheme">
如果您希望主题仅应用于应用程序中的一个Activity,则将android:theme属性添加到标记中。
正如Android提供其他内置资源一样,您可以使用许多预定义的主题,以避免自己编写。例如,您可以使用Dialog主题并使您的Activity显示为对话框:
<activity android:theme="@android:style/Theme.Dialog">
答案 1 :(得分:0)
据我所知,你不能这样做。
我所做的是让每项活动都跟踪当前使用的主题。 然后在恢复中的每个活动中,只检查当前主题是否仍然是它应该是什么,如果不重新启动活动。
获得该应用程序的简单方法是让您的基本活动类实现该行为,然后让所有活动扩展该行为。
答案 2 :(得分:0)
使用静态字段并存储您的主题ID; 并在onCreate方法中使用:
yourActivityObj.setTheme(R.style.AppTheme);
也许是id工作;