【问题标题】:android - how to loop through all activities?android - 如何循环遍历所有活动?
【发布时间】:2012-08-06 05:34:54
【问题描述】:

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

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

ThemeSetterActivity.setStyle(signup.this);

在创建事件中发生。

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

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

谢谢

【问题讨论】:

    标签: android colors themes spinner


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      【讨论】:

      • 都是真的,但这不是他要问的。他具体问的是如何动态更改主题,而不是如何设置它。
      【解决方案3】:

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

      yourActivityObj.setTheme(R.style.AppTheme);
      

      也许 id 工作;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-15
        • 2017-03-09
        • 1970-01-01
        • 1970-01-01
        • 2021-11-27
        • 2018-12-02
        • 1970-01-01
        相关资源
        最近更新 更多