2

在我的 android 应用程序中,我可以更改主题,但要看到更改,我必须退出应用程序并再次打开它。

这就是我改变主题的方式。

ThemeSetterActivity.setStyle(signup.this);

这发生在创建事件上。

但是是否有一些像这样(如下)的代码可以运行,并且会改变所有活动的主题。

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

谢谢

4

3 回答 3

0

将主题应用于 Activity 或应用程序

要为应用程序的所有活动设置主题,请打开 AndroidManifest.xml 文件并编辑标签以包含带有样式名称的 android:theme 属性。例如:

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

如果您希望将主题应用于应用程序中的一个 Activity,则将 android:theme 属性添加到标签中。

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

<activity android:theme="@android:style/Theme.Dialog">
于 2012-08-09T02:21:07.827 回答
0

据我所知,你不能那样做。

我所做的是让每个活动跟踪它当前使用的主题。然后在恢复的每个活动中检查当前主题是否仍然是它应该是的,如果不是重新启动活动。

使该应用程序广泛使用的一种简单方法是让您的基本活动类实现该行为,然后让所有活动扩展该行为。

于 2012-08-09T02:24:28.000 回答
0

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

yourActivityObj.setTheme(R.style.AppTheme);

也许我工作;

于 2012-08-09T02:30:50.877 回答