以编程方式设置的主题。如何重新加载 Activity 以应用

Posted

技术标签:

【中文标题】以编程方式设置的主题。如何重新加载 Activity 以应用【英文标题】:Theme Programmatically set. How to reload Activity to apply 【发布时间】:2012-03-15 19:33:12 【问题描述】:

如何在不重新启动整个应用程序的情况下应用主题?如果我使用startActivity(getIntent()); finish(); 执行此操作,则 Activity 会退出并且不会重新启动。是否可以简单地重新启动/重新创建 Activity 以应用主题?

【问题讨论】:

【参考方案1】:

它的顺序不正确。

    finish();
    intent = new Intent(this, <your_activity>.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

这是正确的顺序。

可以在调用super.onCreate(savedInstanceState); 之前设置主题。您需要销毁活动并再次创建它并立即在 onCreate() 中调用setTheme(THEME);

【讨论】:

您对这个问题有答案吗? ***.com/questions/9686912/…【参考方案2】:
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

【讨论】:

以上是关于以编程方式设置的主题。如何重新加载 Activity 以应用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 中以编程方式强制重启/重新加载 Playback 设备?

如何以编程方式将活动主题化为对话?

如何在 Holo 主题 Api 11-17 Android 中以编程方式将 EditText 背景设置为默认值

如何以编程方式设置 windowDrawsSystemBarBackgrounds?

以编程方式设置imagecache主题

Eclipse RCP - 以编程方式更改 plugin.xml?重新加载?